Uname: Linux p3plzcpnl499967.prod.phx3.secureserver.net 4.18.0-553.54.1.lve.el8.x86_64 #1 SMP Wed Jun 4 13:01:13 UTC 2025 x86_64
Software: Apache
PHP version: 8.2.30 [ PHP INFO ] PHP os: Linux
Server Ip: 208.109.40.231
Your Ip: 216.73.216.26
User: nayff91c5tsx (10005085) | Group: nayff91c5tsx (10005085)
Safe Mode: OFF
Disable Function:
NONE

name : base-database-updater.php
<?php
namespace Elementor\Core\Database;

use Elementor\Core\Utils\Collection;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly.
}

abstract class Base_Database_Updater {
	public function up( $force = false ) {
		$installed_version = $this->get_installed_version();

		if ( ! $force && $this->get_db_version() <= $installed_version ) {
			return;
		}

		$migrations = new Collection( $this->get_migrations() );

		if ( ! $force ) {
			$migrations = $migrations->filter( function ( $_, $version ) use ( $installed_version ) {
				return $version > $installed_version;
			} );
		}

		$migrations->map( function ( Base_Migration $migration, $version ) {
			$migration->up();

			$this->update_db_version_option( $version );
		} );

		$this->update_db_version_option( $this->get_db_version() );
	}

	public function register() {
		add_action( 'admin_init', function () {
			$this->up();
		} );
	}

	protected function update_db_version_option( $version ) {
		update_option( $this->get_db_version_option_name(), $version );
	}

	protected function get_installed_version() {
		return intval( get_option( $this->get_db_version_option_name() ) );
	}

	abstract protected function get_db_version();

	abstract protected function get_db_version_option_name(): string;

	abstract protected function get_migrations(): array;
}
© 2026 GrazzMean