diff --git a/inc/admin-pages/class-hosting-integration-wizard-admin-page.php b/inc/admin-pages/class-hosting-integration-wizard-admin-page.php index 2f2dd5e01..4d55ee05e 100644 --- a/inc/admin-pages/class-hosting-integration-wizard-admin-page.php +++ b/inc/admin-pages/class-hosting-integration-wizard-admin-page.php @@ -133,6 +133,27 @@ public function get_menu_title() { return __('Host Provider Integration', 'ultimate-multisite'); } + /** + * Returns the current wizard section. + * + * Old instruction links should open the combined configuration step when an + * integration no longer uses a separate instructions screen. + * + * @since 2.16.2 + * @return string + */ + public function get_current_section() { + + $current_section = parent::get_current_section(); + $sections = $this->get_sections(); + + if ('instructions' === $current_section && ! isset($sections['instructions']) && isset($sections['config'])) { + return 'config'; + } + + return $current_section; + } + /** * Returns the sections for this Wizard. * diff --git a/tests/WP_Ultimo/Admin_Pages/Hosting_Integration_Wizard_Admin_Page_Test.php b/tests/WP_Ultimo/Admin_Pages/Hosting_Integration_Wizard_Admin_Page_Test.php index 0c9018ff2..c3fa199a9 100644 --- a/tests/WP_Ultimo/Admin_Pages/Hosting_Integration_Wizard_Admin_Page_Test.php +++ b/tests/WP_Ultimo/Admin_Pages/Hosting_Integration_Wizard_Admin_Page_Test.php @@ -270,6 +270,23 @@ public function test_get_sections_removes_instructions_when_no_instructions_supp $this->assertArrayNotHasKey('instructions', $sections); } + /** + * Removed instruction URLs resolve to the configuration step. + */ + public function test_removed_instruction_url_resolves_to_configuration(): void { + + $integration = new Integration('inline-instructions-provider', 'Inline Instructions Provider'); + $integration->set_supports(['no-instructions']); + + $ref = new \ReflectionProperty(Hosting_Integration_Wizard_Admin_Page::class, 'integration'); + $ref->setAccessible(true); + $ref->setValue($this->page, $integration); + + $_GET['step'] = 'instructions'; + + $this->assertSame('config', $this->page->get_current_section()); + } + /** * get_sections() removes 'config' when integration supports 'no-config'. */ diff --git a/views/wizards/host-integrations/configuration.php b/views/wizards/host-integrations/configuration.php index 048627640..eb2ec73cd 100644 --- a/views/wizards/host-integrations/configuration.php +++ b/views/wizards/host-integrations/configuration.php @@ -13,11 +13,11 @@ $configuration_instructions = $configuration_instructions ?? []; ?>

- +

- +

@@ -35,7 +35,7 @@ -
    +