PluginProbe
Elementor Website Builder – more than just a page builder / 3.31.1
Elementor Website Builder – more than just a page builder v3.31.1
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 4.0.8 4.1.0-beta1 4.1.0-dev1 All 452 releases
elementor / app / modules / import-export / runners / export / site-settings.php

site-settings.php in Elementor Website Builder – more than just a page builder 3.31.1, at app/modules/import-export/runners/export/site-settings.php

101 lines 2.2 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 namespace Elementor\App\Modules\ImportExport\Runners\Export;
3
4 use Elementor\Plugin;
5
6 class Site_Settings extends Export_Runner_Base {
7
8 public static function get_name(): string {
9 return 'site-settings';
10 }
11
12 public function should_export( array $data ) {
13 return (
14 isset( $data['include'] ) &&
15 in_array( 'settings', $data['include'], true )
16 );
17 }
18
19 public function export( array $data ) {
20 $kit = Plugin::$instance->kits_manager->get_active_kit();
21 $kit_data = $kit->get_export_data();
22 $kit_tabs = $kit->get_tabs();
23
24 $excluded_kit_settings_keys = [
25 'site_name',
26 'site_description',
27 'site_logo',
28 'site_favicon',
29 ];
30
31 foreach ( $excluded_kit_settings_keys as $setting_key ) {
32 unset( $kit_data['settings'][ $setting_key ] );
33 }
34
35 unset( $kit_tabs['settings-site-identity'] );
36
37 $kit_tabs = array_keys( $kit_tabs );
38
39 $theme_data = $this->export_theme();
40
41 if ( $theme_data ) {
42 $kit_data['theme'] = $theme_data;
43 }
44
45 $experiments_data = $this->export_experiments();
46
47 if ( $experiments_data ) {
48 $kit_data['experiments'] = $experiments_data;
49 }
50
51 $manifest_data['site-settings'] = $kit_tabs;
52
53 return [
54 'files' => [
55 'path' => 'site-settings',
56 'data' => $kit_data,
57 ],
58 'manifest' => [
59 $manifest_data,
60 ],
61 ];
62 }
63
64 public function export_theme() {
65 $theme = wp_get_theme();
66
67 if ( empty( $theme ) || empty( $theme->get( 'ThemeURI' ) ) ) {
68 return null;
69 }
70
71 $theme_data['name'] = $theme->get( 'Name' );
72 $theme_data['theme_uri'] = $theme->get( 'ThemeURI' );
73 $theme_data['version'] = $theme->get( 'Version' );
74 $theme_data['slug'] = $theme->get_stylesheet();
75
76 return $theme_data;
77 }
78
79 private function export_experiments() {
80 $features = Plugin::$instance->experiments->get_features();
81
82 if ( empty( $features ) ) {
83 return null;
84 }
85
86 $experiments_data = [];
87
88 foreach ( $features as $feature_name => $feature ) {
89 $experiments_data[ $feature_name ] = [
90 'name' => $feature_name,
91 'title' => $feature['title'],
92 'state' => $feature['state'],
93 'default' => $feature['default'],
94 'release_status' => $feature['release_status'],
95 ];
96 }
97
98 return empty( $experiments_data ) ? null : $experiments_data;
99 }
100 }
101