| @@ -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 | } |