PluginProbe
Elementor Website Builder – more than just a page builder / 3.26.3
Elementor Website Builder – more than just a page builder v3.26.3
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
elementor / modules / kit-elements-defaults / import-export / runners / import.php

import.php in Elementor Website Builder – more than just a page builder 3.26.3, at modules/kit-elements-defaults/import-export/runners/import.php

70 lines 2.1 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 namespace Elementor\Modules\KitElementsDefaults\ImportExport\Runners;
3
4 use Elementor\Modules\KitElementsDefaults\ImportExport\Import_Export;
5 use Elementor\Plugin;
6 use Elementor\Core\Utils\Collection;
7 use Elementor\Modules\KitElementsDefaults\Module;
8 use Elementor\App\Modules\ImportExport\Utils as ImportExportUtils;
9 use Elementor\Modules\KitElementsDefaults\Utils\Settings_Sanitizer;
10 use Elementor\App\Modules\ImportExport\Runners\Import\Import_Runner_Base;
11
12 if ( ! defined( 'ABSPATH' ) ) {
13 exit; // Exit if accessed directly.
14 }
15
16 class Import extends Import_Runner_Base {
17 public static function get_name() : string {
18 return 'elements-default-values';
19 }
20
21 public function should_import( array $data ) {
22 // Together with site-settings.
23 return (
24 isset( $data['include'] ) &&
25 in_array( 'settings', $data['include'], true ) &&
26 ! empty( $data['site_settings']['settings'] ) &&
27 ! empty( $data['extracted_directory_path'] )
28 );
29 }
30
31 public function import( array $data, array $imported_data ) {
32 $kit = Plugin::$instance->kits_manager->get_active_kit();
33 $file_name = Import_Export::FILE_NAME;
34 $default_values = ImportExportUtils::read_json_file( "{$data['extracted_directory_path']}/{$file_name}.json" );
35
36 if ( ! $kit || ! $default_values ) {
37 return [];
38 }
39
40 $element_types = array_keys( Plugin::$instance->elements_manager->get_element_types() );
41 $widget_types = array_keys( Plugin::$instance->widgets_manager->get_widget_types() );
42
43 $types = array_merge( $element_types, $widget_types );
44
45 $sanitizer = new Settings_Sanitizer(
46 Plugin::$instance->elements_manager,
47 $widget_types
48 );
49
50 $default_values = ( new Collection( $default_values ) )
51 ->filter( function ( $settings, $type ) use ( $types ) {
52 return in_array( $type, $types, true );
53 } )
54 ->map( function ( $settings, $type ) use ( $sanitizer, $kit ) {
55 return $sanitizer
56 ->for( $type )
57 ->using( $settings )
58 ->remove_invalid_settings()
59 ->kses_deep()
60 ->prepare_for_import( $kit )
61 ->get();
62 } )
63 ->all();
64
65 $kit->update_json_meta( Module::META_KEY, $default_values );
66
67 return $default_values;
68 }
69 }
70