Hunter Black Hat SEO
Server:LiteSpeed
System:Linux raton.hozzt.com 4.18.0-553.144.1.lve.el8.x86_64 #1 SMP Thu Jul 16 08:31:06 UTC 2026 x86_64
User:altinkayamarble (1260)
PHP:7.4.33
Disabled:symlink, show_source, system, virtual, shell_exec,passthru, exec, popen, proc_open, proc_close, proc_nice, proc_terminate,proc_get_status, pfsockopen,allow_url_fopen, posix_getpwuid, eval,posix_setsid, posix_mkfifo, posix_setpgid,posix_setuid, posix_uname,posix_kill,apache_child_terminate, apache_setenv,define_syslog_variables,escapeshellarg, escapeshellcmd, leak, dl, fp, fput,ftp_connect, ftp_exec,ftp_get, ftp_login, ftp_nb_fput, ftp_put, ftp_raw, ftp_rawlist,highlight_file, ini_alter, ini_get_all, ini_restore, inject_code
Upload Files
File: /home/altinkayamarble/public_html/wp-content/plugins/wp-mail-smtp/src/MigrationAbstract.php
<?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 );
			}
		}
	}
}