| @@ -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 ); |
| @@ -151,32 +141,11 @@ | ||
| 151 | 141 | update_option( self::OPTION_PREVIOUS, $this->get_active_id() ); |
| 152 | 142 | update_option( self::OPTION_ACTIVE, $id ); |
| 153 | 143 | } |
| 154 | 144 | |
| 155 | - do_action( 'elementor/kit/after_new_kit_created', [ | |
| 156 | - 'new_kit_id' => $id, | |
| 157 | - 'previous_kit_id' => $current_kit->get_post()->ID, | |
| 158 | - ] ); | |
| 159 | - | |
| 160 | 145 | return $id; |
| 161 | 146 | } |
| 162 | 147 | |
| 163 | - private function get_meta_to_preserve( Kit $current_kit ): array { | |
| 164 | - $meta_keys_to_preserve = apply_filters( 'elementor/kit/meta_to_preserve_on_kit_import', [] ); | |
| 165 | - | |
| 166 | - $kit_meta_data = []; | |
| 167 | - | |
| 168 | - foreach ( $meta_keys_to_preserve as $meta_key ) { | |
| 169 | - $value = $current_kit->get_meta( $meta_key ); | |
| 170 | - | |
| 171 | - if ( ! empty( $value ) ) { | |
| 172 | - $kit_meta_data[ $meta_key ] = $value; | |
| 173 | - } | |
| 174 | - } | |
| 175 | - | |
| 176 | - return $kit_meta_data; | |
| 177 | - } | |
| 178 | - | |
| 179 | 148 | public function create_default() { |
| 180 | 149 | return $this->create( [ |
| 181 | 150 | 'post_title' => esc_html__( 'Default Kit', 'elementor' ), |
| 182 | 151 | ] ); |
| @@ -195,9 +164,9 @@ | ||
| 195 | 164 | return; |
| 196 | 165 | } |
| 197 | 166 | |
| 198 | 167 | $id = wp_insert_post( [ |
| 199 | - 'post_title' => esc_html__( 'Default Kit', 'elementor' ), | |
| 168 | + 'post_title' => __( 'Default Kit', 'elementor' ), | |
| 200 | 169 | 'post_type' => Source_Local::CPT, |
| 201 | 170 | 'post_status' => 'publish', |
| 202 | 171 | 'meta_input' => [ |
| 203 | 172 | '_elementor_edit_mode' => 'builder', |
| @@ -210,35 +179,8 @@ | ||
| 210 | 179 | return $id; |
| 211 | 180 | } |
| 212 | 181 | |
| 213 | 182 | /** |
| 214 | - * @param $imported_kit_id int The id of the imported kit that should be deleted. | |
| 215 | - * @param $active_kit_id int The id of the kit that should set as 'active_kit' after the deletion. | |
| 216 | - * @param $previous_kit_id int The id of the kit that should set as 'previous_kit' after the deletion. | |
| 217 | - * @return void | |
| 218 | - */ | |
| 219 | - public function revert( int $imported_kit_id, int $active_kit_id, int $previous_kit_id ) { | |
| 220 | - // If the kit that should set as active is not a valid kit then abort the revert. | |
| 221 | - if ( ! $this->is_kit( $active_kit_id ) ) { | |
| 222 | - return; | |
| 223 | - } | |
| 224 | - | |
| 225 | - // This a hacky solution to avoid from the revert process to be interrupted by the `trash_kit_confirmation`. | |
| 226 | - $this->should_skip_trash_kit_confirmation = true; | |
| 227 | - | |
| 228 | - $kit = $this->get_kit( $imported_kit_id ); | |
| 229 | - $kit->force_delete(); | |
| 230 | - | |
| 231 | - $this->should_skip_trash_kit_confirmation = false; | |
| 232 | - | |
| 233 | - update_option( self::OPTION_ACTIVE, $active_kit_id ); | |
| 234 | - | |
| 235 | - if ( $this->is_kit( $previous_kit_id ) ) { | |
| 236 | - update_option( self::OPTION_PREVIOUS, $previous_kit_id ); | |
| 237 | - } | |
| 238 | - } | |
| 239 | - | |
| 240 | - /** | |
| 241 | 183 | * @param Documents_Manager $documents_manager |
| 242 | 184 | */ |
| 243 | 185 | public function register_document( $documents_manager ) { |
| 244 | 186 | $documents_manager->register_document_type( 'kit', Kit::get_class_full_name() ); |
| @@ -301,9 +243,9 @@ | ||
| 301 | 243 | $is_kit_preview = is_preview() && isset( $_GET['preview_id'] ) && $active_kit->get_main_id() === (int) $_GET['preview_id']; |
| 302 | 244 | |
| 303 | 245 | if ( $is_kit_preview ) { |
| 304 | 246 | $kit = Plugin::$instance->documents->get_doc_or_auto_save( $active_kit->get_main_id(), get_current_user_id() ); |
| 305 | - } 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 ) { | |
| 306 | 248 | $kit = $active_kit; |
| 307 | 249 | } |
| 308 | 250 | |
| 309 | 251 | return $kit; |
| @@ -324,9 +266,9 @@ | ||
| 324 | 266 | * Map Scheme To Global |
| 325 | 267 | * |
| 326 | 268 | * Convert a given scheme value to its corresponding default global value |
| 327 | 269 | * |
| 328 | - * @param string $type 'color'/'typography'. | |
| 270 | + * @param string $type 'color'/'typography' | |
| 329 | 271 | * @param $value |
| 330 | 272 | * @return mixed |
| 331 | 273 | */ |
| 332 | 274 | private function map_scheme_to_global( $type, $value ) { |
| @@ -359,9 +301,9 @@ | ||
| 359 | 301 | * @access public |
| 360 | 302 | */ |
| 361 | 303 | public function convert_scheme_to_global( $scheme ) { |
| 362 | 304 | if ( isset( $scheme['type'] ) && isset( $scheme['value'] ) ) { |
| 363 | - // _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.' ); | |
| 364 | 306 | return $this->map_scheme_to_global( $scheme['type'], $scheme['value'] ); |
| 365 | 307 | } |
| 366 | 308 | |
| 367 | 309 | // Typography control 'scheme' properties usually only include the string with the typography value ('1'-'4'). |
| @@ -398,16 +340,12 @@ | ||
| 398 | 340 | |
| 399 | 341 | /** |
| 400 | 342 | * Send a confirm message before move a kit to trash, or if delete permanently not for trash. |
| 401 | 343 | * |
| 402 | - * @param $post_id | |
| 403 | - * @param bool $is_permanently_delete | |
| 344 | + * @param $post_id | |
| 345 | + * @param false $is_permanently_delete | |
| 404 | 346 | */ |
| 405 | 347 | private function before_delete_kit( $post_id, $is_permanently_delete = false ) { |
| 406 | - if ( $this->should_skip_trash_kit_confirmation ) { | |
| 407 | - return; | |
| 408 | - } | |
| 409 | - | |
| 410 | 348 | $document = Plugin::$instance->documents->get( $post_id ); |
| 411 | 349 | |
| 412 | 350 | if ( |
| 413 | 351 | ! $document || |
| @@ -448,20 +386,13 @@ | ||
| 448 | 386 | } |
| 449 | 387 | } |
| 450 | 388 | |
| 451 | 389 | if ( $document ) { |
| 452 | - $document_edit_url = add_query_arg( | |
| 453 | - [ | |
| 454 | - 'active-document' => $this->get_active_id(), | |
| 455 | - ], | |
| 456 | - $document->get_edit_url() | |
| 457 | - ); | |
| 458 | - | |
| 459 | 390 | $admin_bar_config['elementor_edit_page']['children'][] = [ |
| 460 | 391 | 'id' => 'elementor_site_settings', |
| 461 | 392 | 'title' => esc_html__( 'Site Settings', 'elementor' ), |
| 462 | 393 | 'sub_title' => esc_html__( 'Site', 'elementor' ), |
| 463 | - 'href' => $document_edit_url, | |
| 394 | + 'href' => $document->get_edit_url() . '#' . self::E_HASH_COMMAND_OPEN_SITE_SETTINGS, | |
| 464 | 395 | 'class' => 'elementor-site-settings', |
| 465 | 396 | 'parent_class' => 'elementor-second-section', |
| 466 | 397 | ]; |
| 467 | 398 | } |