← All changes
|
app/modules/import-export/runners/revert/site-settings.php
+0
-103
4.3.1
→
3.28.0-dev2
View file →
| @@ -2,9 +2,8 @@ | ||
| 2 | 2 | |
| 3 | 3 | namespace Elementor\App\Modules\ImportExport\Runners\Revert; |
| 4 | 4 | |
| 5 | 5 | use Elementor\Plugin; |
| 6 | -use Elementor\Core\Experiments\Manager as ExperimentsManager; | |
| 7 | 6 | |
| 8 | 7 | class Site_Settings extends Revert_Runner_Base { |
| 9 | 8 | |
| 10 | 9 | public static function get_name(): string { |
| @@ -23,108 +22,6 @@ | ||
| 23 | 22 | $data['runners'][ static::get_name() ]['imported_kit_id'], |
| 24 | 23 | $data['runners'][ static::get_name() ]['active_kit_id'], |
| 25 | 24 | $data['runners'][ static::get_name() ]['previous_kit_id'] |
| 26 | 25 | ); |
| 27 | - | |
| 28 | - $this->revert_theme( $data ); | |
| 29 | - $this->revert_experiments( $data ); | |
| 30 | - } | |
| 31 | - | |
| 32 | - public function get_theme_upgrader(): \Theme_Upgrader { | |
| 33 | - if ( ! class_exists( '\Theme_Upgrader' ) ) { | |
| 34 | - require_once ABSPATH . 'wp-admin/includes/class-wp-upgrader.php'; | |
| 35 | - } | |
| 36 | - | |
| 37 | - if ( ! class_exists( '\WP_Ajax_Upgrader_Skin' ) ) { | |
| 38 | - require_once ABSPATH . 'wp-admin/includes/class-wp-ajax-upgrader-skin.php'; | |
| 39 | - } | |
| 40 | - | |
| 41 | - return new \Theme_Upgrader( new \WP_Ajax_Upgrader_Skin() ); | |
| 42 | - } | |
| 43 | - | |
| 44 | - protected function revert_theme( $data ) { | |
| 45 | - $installed_theme = $data['runners'][ static::get_name() ]['installed_theme']; | |
| 46 | - $activated_theme = $data['runners'][ static::get_name() ]['activated_theme']; | |
| 47 | - $previous_active_theme = $data['runners'][ static::get_name() ]['previous_active_theme']; | |
| 48 | - | |
| 49 | - if ( empty( $installed_theme ) && empty( $activated_theme ) ) { | |
| 50 | - // no need to remove a theme as it was used before import | |
| 51 | - return; | |
| 52 | - } | |
| 53 | - | |
| 54 | - if ( ! empty( $activated_theme ) ) { | |
| 55 | - $previous_theme = wp_get_theme( $previous_active_theme['slug'] ); | |
| 56 | - | |
| 57 | - // no need to remove imported theme as it existed before import | |
| 58 | - $this->activate_previous_theme( $previous_active_theme ); | |
| 59 | - return; | |
| 60 | - } | |
| 61 | - | |
| 62 | - if ( ! empty( $installed_theme ) ) { | |
| 63 | - $this->activate_previous_theme( $previous_active_theme ); | |
| 64 | - $this->delete_theme( $installed_theme ); | |
| 65 | - } | |
| 66 | - } | |
| 67 | - | |
| 68 | - protected function should_delete_theme( $theme_slug ): bool { | |
| 69 | - $current_theme = wp_get_theme(); | |
| 70 | - | |
| 71 | - return $theme_slug !== $current_theme->get_stylesheet() && wp_get_theme( $theme_slug )->exists(); | |
| 72 | - } | |
| 73 | - | |
| 74 | - protected function delete_theme( $theme_slug ): bool { | |
| 75 | - return delete_theme( $theme_slug ); | |
| 76 | - } | |
| 77 | - | |
| 78 | - protected function activate_previous_theme( $previous_active_theme ) { | |
| 79 | - if ( ! $previous_active_theme ) { | |
| 80 | - return; | |
| 81 | - } | |
| 82 | - | |
| 83 | - $theme = wp_get_theme( $previous_active_theme['slug'] ); | |
| 84 | - | |
| 85 | - if ( $theme->exists() ) { | |
| 86 | - switch_theme( $theme->get_stylesheet() ); | |
| 87 | - return; | |
| 88 | - } | |
| 89 | - | |
| 90 | - $download_url = "https://downloads.wordpress.org/theme/{$previous_active_theme['slug']}.{$previous_active_theme['version']}.zip"; | |
| 91 | - $install = $this->get_theme_upgrader()->install( $download_url ); | |
| 92 | - | |
| 93 | - if ( ! $install || is_wp_error( $install ) ) { | |
| 94 | - return; | |
| 95 | - } | |
| 96 | - | |
| 97 | - switch_theme( $previous_active_theme['slug'] ); | |
| 98 | - } | |
| 99 | - | |
| 100 | - protected function revert_experiments( array $data ) { | |
| 101 | - $runner_data = $data['runners'][ static::get_name() ]; | |
| 102 | - $previous_experiments = $runner_data['previous_experiments'] ?? []; | |
| 103 | - | |
| 104 | - if ( empty( $previous_experiments ) ) { | |
| 105 | - return; | |
| 106 | - } | |
| 107 | - | |
| 108 | - $experiments_manager = Plugin::$instance->experiments; | |
| 109 | - $current_features = $experiments_manager->get_features(); | |
| 110 | - | |
| 111 | - foreach ( $previous_experiments as $feature_name => $feature_data ) { | |
| 112 | - if ( ! isset( $current_features[ $feature_name ] ) ) { | |
| 113 | - continue; | |
| 114 | - } | |
| 115 | - | |
| 116 | - if ( ! array_key_exists( $feature_name, $previous_experiments ) ) { | |
| 117 | - continue; | |
| 118 | - } | |
| 119 | - | |
| 120 | - $option_key = $experiments_manager->get_feature_option_key( $feature_name ); | |
| 121 | - $previous_state = $feature_data['state']; | |
| 122 | - | |
| 123 | - if ( ExperimentsManager::STATE_DEFAULT === $previous_state ) { | |
| 124 | - delete_option( $option_key ); | |
| 125 | - } else { | |
| 126 | - update_option( $option_key, $previous_state ); | |
| 127 | - } | |
| 128 | - } | |
| 129 | 26 | } |
| 130 | 27 | } |