Server IP : 172.67.214.6 / Your IP : 216.73.216.73 Web Server : LiteSpeed System : Linux premium900.web-hosting.com 4.18.0-553.22.1.lve.1.el8.x86_64 #1 SMP Tue Oct 8 15:52:54 UTC 2024 x86_64 User : redwjova ( 1790) PHP Version : 8.1.32 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : OFF | Pkexec : OFF Directory : /home/redwjova/fyntric.com/wp-content/themes/smart-mag/inc/admin/ |
Upload File : |
<?php /** * Handle migrations to newer version of theme. */ class Bunyad_Theme_Admin_Migrations { public $from_version; public $to_version; protected $options; protected $prev_options; public function __construct() { add_action('bunyad_theme_version_change', [$this, 'begin']); // Debug: Enable to test without saving version number to db. // add_filter('bunyad_theme_version_update_done', '__return_false'); } /** * Begin migration */ public function begin($from_version) { $this->from_version = $from_version; $this->to_version = Bunyad::options()->get_config('theme_version'); // If from_version is empty, it's likely fresh install. if (!$this->from_version) { return; } // Releases with an upgrader $releases = [ '9.2.1', '9.0.0', '7.0.0', '5.3.0', '5.2.0', '5.0.0' ]; $releases = array_reverse($releases); $this->load_options(); foreach ($releases as $index => $release) { // This shouldn't happen. Can't be a migrator method that's newer than // installed version. if (version_compare($this->to_version, $release, '<')) { continue; } // Current version is newer or already at it, continue to next. if (version_compare($this->from_version, $release, '>=')) { continue; } $handler = [$this, 'migrate_' . str_replace('.', '', $release)]; if (is_callable($handler)) { call_user_func($handler); } } $this->save_options(); } /** * Upgrade to 9.2.1 */ public function migrate_921() { // Elementor 3.16 is wrongly setting containers active by default. update_option('elementor_experiment-container', 'inactive'); } /** * Upgrade to version 9.0.0 */ public function migrate_900() { $migrate = new Bunyad_Theme_Admin_Migrations_900Update($this->options); $this->options = $migrate->options; // CSS has to be regenerated for social icons top. $this->flush_cache(); } /** * Upgrade to version 7.0.0 */ public function migrate_700() { $migrate = new Bunyad_Theme_Admin_Migrations_700Update($this->options); $this->options = $migrate->options; // Options haven't changed, but a logo CSS change has to be done. $this->flush_cache(); } /** * Upgrade to version 5.3.0 */ public function migrate_530() { $migrate = new Bunyad_Theme_Admin_Migrations_530Update($this->options); $this->options = $migrate->options; } /** * Upgrade to version 5.2.0 */ public function migrate_520() { $migrate = new Bunyad_Theme_Admin_Migrations_520Update($this->options); $this->options = $migrate->options; } /** * Upgrade to version 5.0.0 */ public function migrate_500() { $migrate = new Bunyad_Theme_Admin_Migrations_500Update($this->options); $this->options = $migrate->options; // Converter flag. update_option('smartmag_convert_from_v3', 1); } /** * Load fresh options to the memory. */ public function load_options() { // Fresh init to discard any leaky overrides. Bunyad::options()->init(); $this->options = get_option(Bunyad::options()->get_config('theme_prefix') .'_theme_options'); // Save in previous options to detect changes. $this->prev_options = $this->options; } /** * Save options and clear the caches. */ public function save_options() { // Nothing changed. if ($this->options === $this->prev_options) { return; } // Save the changes Bunyad::options() ->set_all($this->options) ->update(); $this->flush_cache(); } public function flush_cache() { // Flush CSS cache delete_transient('bunyad_custom_css_cache'); delete_transient('bunyad_custom_css_state'); wp_cache_flush(); } } // init and make available in Bunyad::get('theme_migrations') Bunyad::register('theme_migrations', [ 'class' => 'Bunyad_Theme_Admin_Migrations', 'init' => true ]);