PluginProbe
Elementor Website Builder – more than just a page builder / 3.7.5
Elementor Website Builder – more than just a page builder v3.7.5
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 4.0.8 4.1.0-beta1 4.1.0-dev1 4.0.7 All 451 releases
← All changes | core/kits/manager.php +12 -76 4.1.33.7.5 View file →
@@ -6,9 +6,9 @@
6 6 use Elementor\Core\Kits\Documents\Tabs\Global_Colors;
7 7 use Elementor\Core\Kits\Documents\Tabs\Global_Typography;
8 8 use Elementor\Plugin;
9 9 use Elementor\Core\Files\CSS\Post as Post_CSS;
10 -use Elementor\Core\Files\CSS\Post_Preview;
10 +use Elementor\Core\Files\CSS\Post_Preview as Post_Preview;
11 11 use Elementor\Core\Documents_Manager;
12 12 use Elementor\Core\Kits\Documents\Kit;
13 13 use Elementor\TemplateLibrary\Source_Local;
14 14 use Elementor\Utils;
@@ -24,10 +24,8 @@
24 24 const OPTION_PREVIOUS = 'elementor_previous_kit';
25 25
26 26 const E_HASH_COMMAND_OPEN_SITE_SETTINGS = 'e:run:panel/global/open';
27 27
28 - private $should_skip_trash_kit_confirmation = false;
29 -
30 28 public function get_active_id() {
31 29 return get_option( self::OPTION_ACTIVE );
32 30 }
33 31
@@ -34,10 +32,10 @@
34 32 public function get_previous_id() {
35 33 return get_option( self::OPTION_PREVIOUS );
36 34 }
37 35
38 - public function get_kit( $kit_id ) {
39 - $kit = Plugin::$instance->documents->get( $kit_id );
36 + public function get_active_kit() {
37 + $kit = Plugin::$instance->documents->get( $this->get_active_id() );
40 38
41 39 if ( ! $this->is_valid_kit( $kit ) ) {
42 40 return $this->get_empty_kit_instance();
43 41 }
@@ -44,12 +42,8 @@
44 42
45 43 return $kit;
46 44 }
47 45
48 - public function get_active_kit() {
49 - return $this->get_kit( $this->get_active_id() );
50 - }
51 -
52 46 public function get_active_kit_for_frontend() {
53 47 $kit = Plugin::$instance->documents->get_doc_for_frontend( $this->get_active_id() );
54 48
55 49 if ( ! $this->is_valid_kit( $kit ) ) {
@@ -71,9 +65,9 @@
71 65 /**
72 66 * Returns an empty kit for situation when there is no kit in the site.
73 67 *
74 68 * @return Kit
75 - * @throws \Exception If the kit instance cannot be created.
69 + * @throws \Exception
76 70 */
77 71 private function get_empty_kit_instance() {
78 72 return new Kit( [
79 73 'settings' => [],
@@ -137,16 +131,12 @@
137 131
138 132 public function create_new_kit( $kit_name = '', $settings = [], $active = true ) {
139 133 $kit_name = $kit_name ? $kit_name : esc_html__( 'Custom', 'elementor' );
140 134
141 - $current_kit = $this->get_active_kit();
142 -
143 - $kit_meta_data = $this->get_meta_to_preserve( $current_kit );
144 -
145 135 $id = $this->create( [
146 136 'post_title' => $kit_name,
147 137 'settings' => $settings,
148 - ], $kit_meta_data );
138 + ] );
149 139
150 140 if ( $active ) {
151 141 update_option( self::OPTION_PREVIOUS, $this->get_active_id() );
152 142 update_option( self::OPTION_ACTIVE, $id );
@@ -154,24 +144,8 @@
154 144
155 145 return $id;
156 146 }
157 147
158 - private function get_meta_to_preserve( Kit $current_kit ): array {
159 - $meta_keys_to_preserve = apply_filters( 'elementor/kit/meta_to_preserve_on_kit_import', [] );
160 -
161 - $kit_meta_data = [];
162 -
163 - foreach ( $meta_keys_to_preserve as $meta_key ) {
164 - $value = $current_kit->get_meta( $meta_key );
165 -
166 - if ( ! empty( $value ) ) {
167 - $kit_meta_data[ $meta_key ] = $value;
168 - }
169 - }
170 -
171 - return $kit_meta_data;
172 - }
173 -
174 148 public function create_default() {
175 149 return $this->create( [
176 150 'post_title' => esc_html__( 'Default Kit', 'elementor' ),
177 151 ] );
@@ -190,9 +164,9 @@
190 164 return;
191 165 }
192 166
193 167 $id = wp_insert_post( [
194 - 'post_title' => esc_html__( 'Default Kit', 'elementor' ),
168 + 'post_title' => __( 'Default Kit', 'elementor' ),
195 169 'post_type' => Source_Local::CPT,
196 170 'post_status' => 'publish',
197 171 'meta_input' => [
198 172 '_elementor_edit_mode' => 'builder',
@@ -205,35 +179,8 @@
205 179 return $id;
206 180 }
207 181
208 182 /**
209 - * @param $imported_kit_id int The id of the imported kit that should be deleted.
210 - * @param $active_kit_id int The id of the kit that should set as 'active_kit' after the deletion.
211 - * @param $previous_kit_id int The id of the kit that should set as 'previous_kit' after the deletion.
212 - * @return void
213 - */
214 - public function revert( int $imported_kit_id, int $active_kit_id, int $previous_kit_id ) {
215 - // If the kit that should set as active is not a valid kit then abort the revert.
216 - if ( ! $this->is_kit( $active_kit_id ) ) {
217 - return;
218 - }
219 -
220 - // This a hacky solution to avoid from the revert process to be interrupted by the `trash_kit_confirmation`.
221 - $this->should_skip_trash_kit_confirmation = true;
222 -
223 - $kit = $this->get_kit( $imported_kit_id );
224 - $kit->force_delete();
225 -
226 - $this->should_skip_trash_kit_confirmation = false;
227 -
228 - update_option( self::OPTION_ACTIVE, $active_kit_id );
229 -
230 - if ( $this->is_kit( $previous_kit_id ) ) {
231 - update_option( self::OPTION_PREVIOUS, $previous_kit_id );
232 - }
233 - }
234 -
235 - /**
236 183 * @param Documents_Manager $documents_manager
237 184 */
238 185 public function register_document( $documents_manager ) {
239 186 $documents_manager->register_document_type( 'kit', Kit::get_class_full_name() );
@@ -296,9 +243,9 @@
296 243 $is_kit_preview = is_preview() && isset( $_GET['preview_id'] ) && $active_kit->get_main_id() === (int) $_GET['preview_id'];
297 244
298 245 if ( $is_kit_preview ) {
299 246 $kit = Plugin::$instance->documents->get_doc_or_auto_save( $active_kit->get_main_id(), get_current_user_id() );
300 - } elseif ( null !== $active_kit->get_main_post() && 'publish' === $active_kit->get_main_post()->post_status ) {
247 + } elseif ( 'publish' === $active_kit->get_main_post()->post_status ) {
301 248 $kit = $active_kit;
302 249 }
303 250
304 251 return $kit;
@@ -319,9 +266,9 @@
319 266 * Map Scheme To Global
320 267 *
321 268 * Convert a given scheme value to its corresponding default global value
322 269 *
323 - * @param string $type 'color'/'typography'.
270 + * @param string $type 'color'/'typography'
324 271 * @param $value
325 272 * @return mixed
326 273 */
327 274 private function map_scheme_to_global( $type, $value ) {
@@ -354,9 +301,9 @@
354 301 * @access public
355 302 */
356 303 public function convert_scheme_to_global( $scheme ) {
357 304 if ( isset( $scheme['type'] ) && isset( $scheme['value'] ) ) {
358 - // _deprecated_argument( $args['scheme'], '3.0.0', 'Schemes are now deprecated - use $args[\'global\'] instead.' );
305 + //_deprecated_argument( $args['scheme'], '3.0.0', 'Schemes are now deprecated - use $args[\'global\'] instead.' );
359 306 return $this->map_scheme_to_global( $scheme['type'], $scheme['value'] );
360 307 }
361 308
362 309 // Typography control 'scheme' properties usually only include the string with the typography value ('1'-'4').
@@ -393,16 +340,12 @@
393 340
394 341 /**
395 342 * Send a confirm message before move a kit to trash, or if delete permanently not for trash.
396 343 *
397 - * @param $post_id
398 - * @param bool $is_permanently_delete
344 + * @param $post_id
345 + * @param false $is_permanently_delete
399 346 */
400 347 private function before_delete_kit( $post_id, $is_permanently_delete = false ) {
401 - if ( $this->should_skip_trash_kit_confirmation ) {
402 - return;
403 - }
404 -
405 348 $document = Plugin::$instance->documents->get( $post_id );
406 349
407 350 if (
408 351 ! $document ||
@@ -443,20 +386,13 @@
443 386 }
444 387 }
445 388
446 389 if ( $document ) {
447 - $document_edit_url = add_query_arg(
448 - [
449 - 'active-document' => $this->get_active_id(),
450 - ],
451 - $document->get_edit_url()
452 - );
453 -
454 390 $admin_bar_config['elementor_edit_page']['children'][] = [
455 391 'id' => 'elementor_site_settings',
456 392 'title' => esc_html__( 'Site Settings', 'elementor' ),
457 393 'sub_title' => esc_html__( 'Site', 'elementor' ),
458 - 'href' => $document_edit_url,
394 + 'href' => $document->get_edit_url() . '#' . self::E_HASH_COMMAND_OPEN_SITE_SETTINGS,
459 395 'class' => 'elementor-site-settings',
460 396 'parent_class' => 'elementor-second-section',
461 397 ];
462 398 }