get_steps() ) as $step_id ) { if ( in_array( $step_id, $progressive_step_ids, true ) ) { continue; } $is_terminal = 'review_setup' === $step_id; $handlers[] = new WPBC_Setup_Wizard_Checkpoint_Only_Save_Handler( $step_id, $is_terminal ? __( 'Finish setup', 'booking' ) : __( 'Save & continue', 'booking' ), $is_terminal ); } return new WPBC_Setup_Wizard_Step_Save_Registry( $handlers ); } /** * Build the progressive-save coordinator. * * @param WPBC_Setup_Wizard_Draft_Store $checkpoint_store Checkpoint persistence. * @param WPBC_Setup_Wizard_Draft_Validator $draft_validator Step validation service. * @param WPBC_Setup_Wizard_Step_Registry $step_registry Server-owned step registry. * * @return WPBC_Setup_Wizard_Progressive_Save_Coordinator Coordinator. */ public static function create_coordinator( WPBC_Setup_Wizard_Draft_Store $checkpoint_store, WPBC_Setup_Wizard_Draft_Validator $draft_validator, WPBC_Setup_Wizard_Step_Registry $step_registry ) { return new WPBC_Setup_Wizard_Progressive_Save_Coordinator( $checkpoint_store, $draft_validator, self::create_save_registry( $step_registry ), new WPBC_Setup_Wizard_WordPress_Operation_Lock() ); } }