| Server IP : 8.134.250.228 / Your IP : 216.73.216.82 Web Server : Apache System : Linux iZ7xv33p9e9ivk7yhmj7ibZ 5.10.134-18.al8.x86_64 #1 SMP Fri Dec 13 16:56:53 CST 2024 x86_64 User : www ( 1000) PHP Version : 8.0.26 Disable Function : passthru,exec,system,putenv,chroot,chgrp,chown,shell_exec,popen,proc_open,pcntl_exec,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,imap_open,apache_setenv MySQL : OFF | cURL : ON | WGET : OFF | Perl : OFF | Python : OFF | Sudo : OFF | Pkexec : OFF Directory : /www/wwwroot/www.gobluemade.com/wp-content/plugins/wp-mail-smtp/src/ |
Upload File : |
<?php
namespace WPMailSMTP;
/**
* Class MigrationAbstract helps migrate plugin options, DB tables and more.
*
* @since 3.0.0
*/
abstract class MigrationAbstract {
/**
* Version of the latest migration.
*
* @since 3.0.0
*/
const DB_VERSION = 1;
/**
* Option key where we save the current migration version.
*
* @since 3.0.0
*/
const OPTION_NAME = 'wp_mail_smtp_migration_version';
/**
* Option key where we save any errors while performing migration.
*
* @since 3.0.0
*/
const ERROR_OPTION_NAME = 'wp_mail_smtp_migration_error';
/**
* Current migration version, received from static::OPTION_NAME WP option
*
* @since 3.0.0
*
* @var int
*/
protected $cur_ver;
/**
* Migration constructor.
*
* @since 3.0.0
*/
public function __construct() {
$this->cur_ver = static::get_current_version();
}
/**
* Initialize migration.
*
* @since 3.0.0
*/
public function init() {
$this->validate_db();
}
/**
* Whether migration is enabled.
*
* @since 3.0.0
*
* @return bool
*/
public static function is_enabled() {
return true;
}
/**
* Static on purpose, to get current DB version without __construct() and validation.
*
* @since 3.0.0
*
* @return int
*/
public static function get_current_version() {
return (int) get_option( static::OPTION_NAME, 0 );
}
/**
* Check DB version and update to the latest one.
*
* @since 3.0.0
*/
protected function validate_db() {
if ( $this->cur_ver < static::DB_VERSION ) {
$this->run( static::DB_VERSION );
}
}
/**
* Update DB version in options table.
*
* @since 3.0.0
*
* @param int $version Version number.
*/
protected function update_db_ver( $version = 0 ) {
$version = (int) $version;
if ( empty( $version ) ) {
$version = static::DB_VERSION;
}
// Autoload it, because this value is checked all the time
// and no need to request it separately from all autoloaded options.
update_option( static::OPTION_NAME, $version, true );
}
/**
* Prevent running the same migration twice.
* Run migration only when required.
*
* @since 3.0.0
*
* @param int $version The current migration version.
*/
protected function maybe_required_older_migrations( $version ) {
$version = (int) $version;
if ( ( $version - $this->cur_ver ) > 1 ) {
$this->run( $version - 1 );
}
}
/**
* Actual migration launcher.
*
* @since 3.0.0
*
* @param int $version The specified migration version to run.
*/
protected function run( $version ) {
$version = (int) $version;
if ( method_exists( $this, 'migrate_to_' . $version ) ) {
$this->{'migrate_to_' . $version}();
} else {
if ( WP::in_wp_admin() ) {
$message = sprintf( /* translators: %1$s - the DB option name, %2$s - WP Mail SMTP, %3$s - error message. */
esc_html__( 'There was an error while upgrading the %1$s database. Please contact %2$s support with this information: %3$s.', 'wp-mail-smtp' ),
static::OPTION_NAME,
'<strong>WP Mail SMTP</strong>',
'<code>migration from v' . static::get_current_version() . ' to v' . static::DB_VERSION . ' failed. Plugin version: v' . WPMS_PLUGIN_VER . '</code>'
);
WP::add_admin_notice( $message, WP::ADMIN_NOTICE_ERROR );
}
}
}
}