PluginProbe
Elementor Website Builder – more than just a page builder / 3.28.0-dev2
Elementor Website Builder – more than just a page builder v3.28.0-dev2
4.3.2 4.3.1 4.3.0 4.3.0-beta3 4.3.0-beta2 4.3.0-beta1 4.2.4 4.2.3 4.2.2 4.2.1 4.2.0 4.1.5 4.2.0-beta2 4.2.0-dev2 4.2.0-beta1 4.1.4 4.1.3 4.1.2 4.1.1 4.1.0 4.1.0-beta3 4.1.0-dev3 4.0.9 4.1.0-beta2 4.1.0-dev2 All 455 releases
← 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 }