Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 6 additions & 1 deletion inc/admin-pages/class-multisite-setup-admin-page.php
Original file line number Diff line number Diff line change
Expand Up @@ -96,7 +96,7 @@
* @return string Title of the page.
*/
public function get_title(): string {
return __('Enable WordPress Multisite', 'multisite-ultimate');

Check warning on line 99 in inc/admin-pages/class-multisite-setup-admin-page.php

View workflow job for this annotation

GitHub Actions / Code Quality Checks

Mismatched text domain. Expected 'ultimate-multisite' but got 'multisite-ultimate'.
}

/**
Expand All @@ -106,7 +106,7 @@
* @return string Menu label of the page.
*/
public function get_menu_title() {
return __('Multisite Ultimate', 'multisite-ultimate');

Check warning on line 109 in inc/admin-pages/class-multisite-setup-admin-page.php

View workflow job for this annotation

GitHub Actions / Code Quality Checks

Mismatched text domain. Expected 'ultimate-multisite' but got 'multisite-ultimate'.
}

/**
Expand All @@ -129,22 +129,22 @@

return [
'welcome' => [
'title' => __('Multisite Required', 'multisite-ultimate'),

Check warning on line 132 in inc/admin-pages/class-multisite-setup-admin-page.php

View workflow job for this annotation

GitHub Actions / Code Quality Checks

Mismatched text domain. Expected 'ultimate-multisite' but got 'multisite-ultimate'.
'next_label' => __('Get Started →', 'multisite-ultimate'),

Check warning on line 133 in inc/admin-pages/class-multisite-setup-admin-page.php

View workflow job for this annotation

GitHub Actions / Code Quality Checks

Mismatched text domain. Expected 'ultimate-multisite' but got 'multisite-ultimate'.
'back' => false,
'view' => [$this, 'section_welcome'],
],
'configure' => [
'title' => __('Network Configuration', 'multisite-ultimate'),

Check warning on line 138 in inc/admin-pages/class-multisite-setup-admin-page.php

View workflow job for this annotation

GitHub Actions / Code Quality Checks

Mismatched text domain. Expected 'ultimate-multisite' but got 'multisite-ultimate'.
'description' => __('Configure your network settings. These settings determine how your sites will be structured.', 'multisite-ultimate'),

Check warning on line 139 in inc/admin-pages/class-multisite-setup-admin-page.php

View workflow job for this annotation

GitHub Actions / Code Quality Checks

Mismatched text domain. Expected 'ultimate-multisite' but got 'multisite-ultimate'.
'next_label' => __('Continue →', 'multisite-ultimate'),

Check warning on line 140 in inc/admin-pages/class-multisite-setup-admin-page.php

View workflow job for this annotation

GitHub Actions / Code Quality Checks

Mismatched text domain. Expected 'ultimate-multisite' but got 'multisite-ultimate'.
'handler' => [$this, 'handle_configure'],
'fields' => [$this, 'get_network_configuration_fields'],
'back' => true,
],
'install' => [
'title' => __('Installing Network', 'multisite-ultimate'),

Check warning on line 146 in inc/admin-pages/class-multisite-setup-admin-page.php

View workflow job for this annotation

GitHub Actions / Code Quality Checks

Mismatched text domain. Expected 'ultimate-multisite' but got 'multisite-ultimate'.
'description' => __('Setting up your WordPress Multisite network...', 'multisite-ultimate'),

Check warning on line 147 in inc/admin-pages/class-multisite-setup-admin-page.php

View workflow job for this annotation

GitHub Actions / Code Quality Checks

Mismatched text domain. Expected 'ultimate-multisite' but got 'multisite-ultimate'.
'next_label' => Core_Installer::get_instance()->all_done() ? __('Begin Ultimate Multisite Setup →', 'ultimate-multisite') : __('Install', 'ultimate-multisite'),
'disable_next' => true,
'handler' => [$this, 'handle_install_complete'],
Expand All @@ -157,7 +157,7 @@
],
],
'complete' => [
'title' => __('Setup Complete', 'multisite-ultimate'),

Check warning on line 160 in inc/admin-pages/class-multisite-setup-admin-page.php

View workflow job for this annotation

GitHub Actions / Code Quality Checks

Mismatched text domain. Expected 'ultimate-multisite' but got 'multisite-ultimate'.
'description' => __('WordPress Multisite setup is now complete!', 'multisite-ultimate'),
'view' => [$this, 'section_complete'],
'back' => false,
Expand Down Expand Up @@ -340,6 +340,11 @@
$result = wu_request('result', ''); // phpcs:ignore WordPress.Security.NonceVerification.Recommended

if ('success' === $result || is_multisite()) :
/*
* Build the network-admin URL deterministically.
*
*/
$continue_url = site_url('wp-admin/network/admin.php?page=wp-ultimo-setup');
?>
<div class="wu-bg-green-100 wu-border wu-border-green-300 wu-rounded-lg wu-p-4 wu-mb-6">
<div class="wu-flex">
Expand All @@ -358,7 +363,7 @@
</div>

<div class="wu-flex wu-justify-center">
<a href="<?php echo esc_url(wu_network_admin_url('wp-ultimo-setup')); ?>" class="button button-primary button-large">
<a href="<?php echo esc_url($continue_url); ?>" class="button button-primary button-large">
<?php esc_html_e('Continue to Multisite Ultimate Setup', 'multisite-ultimate'); ?>
</a>
</div>
Expand Down
33 changes: 33 additions & 0 deletions tests/WP_Ultimo/Admin_Pages/Multisite_Setup_Admin_Page_Test.php
Original file line number Diff line number Diff line change
Expand Up @@ -678,6 +678,39 @@ public function test_section_complete_button_uses_wp_button_classes_not_missing_
$this->assertStringNotContainsString('wu-bg-blue-700', $output, 'wu-bg-blue-700 is not in framework.css and must not be used');
}

/**
* section_complete() Continue button must point at the /network/ admin URL.
*
* Regression: previously the button used wu_network_admin_url() which falls back
* to admin_url() when is_multisite() returns false (e.g. when OPcache is still
* serving a stale wp-config.php after the install step writes the MULTISITE
* constant). That caused the success-page button to send users to
* /wp-admin/admin.php?page=wp-ultimo-setup (single-site) instead of
* /wp-admin/network/admin.php?page=wp-ultimo-setup. The fix builds the URL
* deterministically with site_url(), so the path must always contain /network/.
*/
public function test_section_complete_continue_button_points_at_network_admin(): void {

$_GET['result'] = 'success';

ob_start();
$this->page->section_complete();
$output = ob_get_clean();

unset($_GET['result']);

$this->assertMatchesRegularExpression(
'#href="[^"]*/wp-admin/network/admin\.php\?page=wp-ultimo-setup[^"]*"#',
$output,
'Continue button must link to the network admin URL, not the single-site admin URL'
);
$this->assertDoesNotMatchRegularExpression(
'#href="[^"]*/wp-admin/admin\.php\?page=wp-ultimo-setup[^"]*"#',
$output,
'Continue button must NOT link to the single-site admin URL'
);
}

// -------------------------------------------------------------------------
// display_manual_instructions() — via reflection
// -------------------------------------------------------------------------
Expand Down
Loading