Skip to content
Open
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
2 changes: 1 addition & 1 deletion .github/workflows/addon-integration-test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ on:
description: "JSON array of PHP versions to test"
required: false
type: string
default: '["8.2"]'
default: '["8.2", "8.3", "8.4", "8.5"]'
run-e2e:
description: "Whether to run E2E (Cypress) tests"
required: false
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/e2e.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ jobs:
timeout-minutes: 45 # Increased for setup wizard + Stripe test clock advancement
strategy:
matrix:
php: ["8.1", "8.2"] # Reduced PHP versions for faster CI
php: ["8.5"]
browser: ["chrome"] # Start with Chrome only for reliability

services:
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ jobs:
- name: Setup PHP
uses: shivammathur/setup-php@accd6127cb78bee3e8082180cb391013d204ef9f # v2
with:
php-version: '7.4'
php-version: '8.2'
extensions: mbstring, intl, curl
tools: composer, wp-cli

Expand Down Expand Up @@ -125,7 +125,7 @@ jobs:
## Notes

- Compatible with WordPress 5.3+
- Requires PHP 7.4.30+
- Requires PHP 8.2+
- Always backup your site before upgrading

deploy-to-wporg:
Expand Down
2 changes: 1 addition & 1 deletion .wiki/frequently-asked-questions.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ No. Ultimate Multisite requires WordPress multisite, subdirectory, or subdomain.
Ultimate Multisite requires:

**WordPress Version** : v5.3+ (Recommended: Last Stable Version)
**PHP Version** : 7.4.x (Support to > 8.0 coming soon)
**PHP Version** : 8.2+
**MySQL Version** : v5+ (Recommended: Version 5.6, in case you don't have 8.0 available on your hosting provider)

_Multisite (subdomain or subdirectory) also needs to be activated._ [How to Install WordPress Multisite](https://support.delta.nextpress.co/hc/wp-ultimo/articles/1677127280-how-do-i-install-word_press-multisite).
Expand Down
4 changes: 2 additions & 2 deletions .wiki/wp-ultimo-requirements.md
Original file line number Diff line number Diff line change
Expand Up @@ -34,13 +34,13 @@ After you have Multisite enabled on WordPress, it is time to install Ultimate Mu

* WordPress: v5.3+ (Recommended: Last stable version)

* PHP: 7.4.x (support to > 8.0 coming soon)
* PHP: 8.2+

* MySQL: v5+ (Recommended: 5.6, in case you don't have 8.0 available on your hosting provider)

These are the only software requirements for Ultimate Multisite.

Keep in mind that Ultimate Multisite may work with PHP 8.0 but we recommend running it with PHP 7.4.x.
Keep in mind that Ultimate Multisite requires PHP 8.2 or higher.

Also, we recommend installing it on **main domains** , not subdomains or subdirectories. It might work on subdomains/subdirectories, but it might present some errors.

Expand Down
4 changes: 2 additions & 2 deletions AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
UI text, docs, and user-facing strings. The code namespace `WP_Ultimo` and the `wu_`
function/hook prefix are preserved for backwards compatibility — do not rename them.

WordPress Multisite WaaS plugin (formerly WP Ultimo). PHP 7.4+, WP 5.3+, GPL v2.
WordPress Multisite WaaS plugin (formerly WP Ultimo). PHP 8.2+, WP 5.3+, GPL v2.
Root namespace: `WP_Ultimo`. Text domain: `ultimate-multisite`.

## Build / Test / Lint Commands
Expand Down Expand Up @@ -125,7 +125,7 @@ assets/ # JS, CSS, images, fonts
- **i18n**: All user-facing strings via `__()`, `esc_html__()`, etc. with domain `ultimate-multisite`.
- **Sanitization**: Use `wu_clean()` or WordPress sanitization functions. Custom sanitizers
registered in `.phpcs.xml.dist`.
- **PHP compat**: Must work on PHP 7.4+. Platform set to 7.4.1 in composer.json.
- **PHP compat**: Must work on PHP 8.2+. Platform set to 8.2.0 in composer.json.

### Naming Conventions

Expand Down
4 changes: 2 additions & 2 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ Thank you for your interest in contributing to Multisite Ultimate! This document

### Prerequisites

- PHP 7.4+ (8.1+ recommended for development)
- PHP 8.2+
- Node.js 16+ and npm
- Composer
- Git
Expand Down Expand Up @@ -396,4 +396,4 @@ The project includes hook profiling capabilities for performance analysis.
- Plugin/theme restrictions
- Resource limits (disk, users, etc.)

Thank you for contributing to Multisite Ultimate! 🚀
Thank you for contributing to Multisite Ultimate! 🚀
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@
<p align="center">
<a href="http://www.gnu.org/licenses/gpl-2.0.html"><img src="https://img.shields.io/badge/License-GPL%20v2-blue.svg" alt="License: GPL v2"></a>
<a href="https://wordpress.org/"><img src="https://img.shields.io/badge/WordPress-6.8%20Tested-green.svg" alt="WordPress: 6.8 Tested"></a>
<a href="https://php.net/"><img src="https://img.shields.io/badge/PHP-7.4.0%2B-purple.svg" alt="PHP: 7.4.0+"></a>
<a href="https://php.net/"><img src="https://img.shields.io/badge/PHP-8.2%2B-purple.svg" alt="PHP: 8.2+"></a>
<a href="https://php.net/"><img src="https://img.shields.io/badge/Up%20To%20PHP-8.4.6-purple.svg" alt="Up To PHP: 8.4.6"></a>
<a href="https://github.com/Ultimate-Multisite/ultimate-multisite/releases"><img src="https://img.shields.io/github/v/release/Ultimate-Multisite/ultimate-multisite" alt="Latest Release"></a>
</p>
Expand Down Expand Up @@ -45,7 +45,7 @@ This plugin was formerly known as WP Ultimo and is now community maintained.
## 📋 Requirements

- WordPress Multisite 5.3 or higher
- PHP 7.4.30 or higher
- PHP 8.2 or higher
- MySQL 5.6 or higher

## 🔧 Installation
Expand Down
4 changes: 2 additions & 2 deletions composer.json
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@
],
"type": "wordpress-plugin",
"require": {
"php": ">=7.4.1",
"php": ">=8.2",
"automattic/jetpack-autoloader": "^3.0 || ^4.0 || ^5.0",
"wp-ultimo/autoloader-plugin": "dev-main",
"wordpress/abilities-api": "^0.4.0",
Expand Down Expand Up @@ -80,7 +80,7 @@
},
"config": {
"platform": {
"php": "7.4.1"
"php": "8.2.0"
},
"allow-plugins": {
"composer/installers": true,
Expand Down
6 changes: 3 additions & 3 deletions composer.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion inc/class-requirements.php
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ class Requirements {
* @since 2.0.0
* @var string
*/
public static $php_version = '7.4.1';
public static $php_version = '8.2';
Comment thread
coderabbitai[bot] marked this conversation as resolved.

/**
* Recommended PHP Version
Expand Down
4 changes: 2 additions & 2 deletions readme.txt
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ Contributors: aanduque, superdav42, vvwb, surferking, mahyarrezghi, josevega, pa
Donate link: https://github.com/sponsors/superdav42/
Tags: multisite, domain mapping, wordpress multisite, multisite saas, waas
Requires at least: 5.3
Requires PHP: 7.4.30
Requires PHP: 8.2
Tested up to: 7.0
Stable tag: 2.13.1
License: GPLv2
Expand Down Expand Up @@ -168,7 +168,7 @@ Ultimate Multisite uses [Microlink](https://microlink.io/) as its primary screen
== Requirements ==

- WordPress Multisite 5.3 or higher
- PHP 7.4.30 or higher
- PHP 8.2 or higher
- MySQL 5.6 or higher

== Screenshots ==
Expand Down
4 changes: 2 additions & 2 deletions tests/WP_Ultimo/Site_Exporter/Self_Boot_Builder_Test.php
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@
. 'wu-self-boot-test-' . uniqid('', true)
. DIRECTORY_SEPARATOR;

mkdir($this->tmp_dir, 0755, true);

Check warning on line 52 in tests/WP_Ultimo/Site_Exporter/Self_Boot_Builder_Test.php

View workflow job for this annotation

GitHub Actions / Code Quality Checks

File operations should use WP_Filesystem methods instead of direct PHP filesystem calls. Found: mkdir().
}

/**
Expand Down Expand Up @@ -96,8 +96,8 @@

Self_Boot_Builder::add_to_staging_dir($this->tmp_dir, 'network', $manifest);

$index_content = file_get_contents($this->tmp_dir . 'index.php');

Check warning on line 99 in tests/WP_Ultimo/Site_Exporter/Self_Boot_Builder_Test.php

View workflow job for this annotation

GitHub Actions / Code Quality Checks

file_get_contents() is discouraged. Use wp_remote_get() for remote URLs instead.
$readme_content = file_get_contents($this->tmp_dir . 'readme.txt');

Check warning on line 100 in tests/WP_Ultimo/Site_Exporter/Self_Boot_Builder_Test.php

View workflow job for this annotation

GitHub Actions / Code Quality Checks

file_get_contents() is discouraged. Use wp_remote_get() for remote URLs instead.

$this->assertStringContainsString('network', $index_content, 'index.php must reference bundle type "network"');
$this->assertStringContainsString('network', $readme_content, 'readme.txt must reference bundle type "network"');
Expand Down Expand Up @@ -156,11 +156,11 @@
// -------------------------------------------------------------------------

/**
* The rendered index.php must be syntactically valid PHP 7.4.
* The rendered index.php must be syntactically valid PHP 8.2.
*
* Runs `php -l` on the rendered output in a subprocess.
*/
public function test_self_boot_index_template_is_php_74_compatible(): void {
public function test_self_boot_index_template_is_php_82_compatible(): void {
$rendered = Self_Boot_Builder::render_index_template('single-site', []);

if (empty($rendered)) {
Expand All @@ -169,13 +169,13 @@
}

$tmp_file = $this->tmp_dir . 'rendered-index-test.php';
file_put_contents($tmp_file, $rendered);

Check warning on line 172 in tests/WP_Ultimo/Site_Exporter/Self_Boot_Builder_Test.php

View workflow job for this annotation

GitHub Actions / Code Quality Checks

File operations should use WP_Filesystem methods instead of direct PHP filesystem calls. Found: file_put_contents().

$php_bin = PHP_BINARY;
$output = [];
$exit = -1;

exec(escapeshellarg($php_bin) . ' -l ' . escapeshellarg($tmp_file) . ' 2>&1', $output, $exit);

Check warning on line 178 in tests/WP_Ultimo/Site_Exporter/Self_Boot_Builder_Test.php

View workflow job for this annotation

GitHub Actions / Code Quality Checks

exec() found. PHP system calls are often disabled by server admins.

$this->assertSame(
0,
Expand Down Expand Up @@ -206,7 +206,7 @@
$installer_path = $this->write_test_installer($rendered);

// Place a fake wp-config.php to simulate existing install.
file_put_contents($this->tmp_dir . 'wp-config.php', '<?php // stub');

Check warning on line 209 in tests/WP_Ultimo/Site_Exporter/Self_Boot_Builder_Test.php

View workflow job for this annotation

GitHub Actions / Code Quality Checks

File operations should use WP_Filesystem methods instead of direct PHP filesystem calls. Found: file_put_contents().

$output = $this->run_installer_cli($installer_path, 'GET', []);

Expand Down Expand Up @@ -287,7 +287,7 @@
],
'errors' => ['core_acquired' => 'Simulated failure on previous run'],
];
file_put_contents($state_file, json_encode($partial_state));

Check warning on line 290 in tests/WP_Ultimo/Site_Exporter/Self_Boot_Builder_Test.php

View workflow job for this annotation

GitHub Actions / Code Quality Checks

json_encode() is discouraged. Use wp_json_encode() instead.

Check warning on line 290 in tests/WP_Ultimo/Site_Exporter/Self_Boot_Builder_Test.php

View workflow job for this annotation

GitHub Actions / Code Quality Checks

File operations should use WP_Filesystem methods instead of direct PHP filesystem calls. Found: file_put_contents().

$output = $this->run_installer_cli($installer_path, 'GET', []);

Expand Down Expand Up @@ -320,7 +320,7 @@
*/
private function write_test_installer(string $rendered): string {
$path = $this->tmp_dir . 'index.php';
file_put_contents($path, $rendered);

Check warning on line 323 in tests/WP_Ultimo/Site_Exporter/Self_Boot_Builder_Test.php

View workflow job for this annotation

GitHub Actions / Code Quality Checks

File operations should use WP_Filesystem methods instead of direct PHP filesystem calls. Found: file_put_contents().
return $path;
}

Expand All @@ -339,7 +339,7 @@
}

$installer_dir = dirname($installer_path);
$post_json = json_encode($post_data);

Check warning on line 342 in tests/WP_Ultimo/Site_Exporter/Self_Boot_Builder_Test.php

View workflow job for this annotation

GitHub Actions / Code Quality Checks

json_encode() is discouraged. Use wp_json_encode() instead.
$method_escaped = escapeshellarg($method);

// Build a wrapper script that sets $_SERVER and $_POST, then includes the installer.
Expand Down
2 changes: 1 addition & 1 deletion ultimate-multisite.php
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
* Domain Path: /lang
* Network: true
* Requires at least: 5.3
* Requires PHP: 7.4.30
* Requires PHP: 8.2
*
* Ultimate Multisite is distributed under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 2 of the License, or
Expand Down
2 changes: 1 addition & 1 deletion views/site-exporter/self-boot/readme.txt
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ QUICK START (Browser Wizard — recommended)
REQUIREMENTS
--------------------------------------------------------------------------------

- PHP 7.4 or later (PHP 8.x recommended)
- PHP 8.2 or later
- MySQL 5.7+ or MariaDB 10.2+
- Outbound HTTPS to wordpress.org (unless core was bundled)
- ZipArchive PHP extension
Expand Down
Loading