PluginProbe
Elementor Website Builder – more than just a page builder / 4.0.0-dev2
Elementor Website Builder – more than just a page builder v4.0.0-dev2
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 / app / modules / import-export / runners / export / site-settings.php

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

103 lines 2.3 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 $manifest_data['theme'] = $theme_data;
44 }
45
46 $experiments_data = $this->export_experiments();
47
48 if ( $experiments_data ) {
49 $kit_data['experiments'] = $experiments_data;
50 $manifest_data['experiments'] = array_keys( $experiments_data );
51 }
52
53 $manifest_data['site-settings'] = $kit_tabs;
54
55 return [
56 'files' => [
57 'path' => 'site-settings',
58 'data' => $kit_data,
59 ],
60 'manifest' => [
61 $manifest_data,
62 ],
63 ];
64 }
65
66 public function export_theme() {
67 $theme = wp_get_theme();
68
69 if ( empty( $theme ) || empty( $theme->get( 'ThemeURI' ) ) ) {
70 return null;
71 }
72
73 $theme_data['name'] = $theme->get( 'Name' );
74 $theme_data['theme_uri'] = $theme->get( 'ThemeURI' );
75 $theme_data['version'] = $theme->get( 'Version' );
76 $theme_data['slug'] = $theme->get_stylesheet();
77
78 return $theme_data;
79 }
80
81 private function export_experiments() {
82 $features = Plugin::$instance->experiments->get_features();
83
84 if ( empty( $features ) ) {
85 return null;
86 }
87
88 $experiments_data = [];
89
90 foreach ( $features as $feature_name => $feature ) {
91 $experiments_data[ $feature_name ] = [
92 'name' => $feature_name,
93 'title' => $feature['title'],
94 'state' => $feature['state'],
95 'default' => $feature['default'],
96 'release_status' => $feature['release_status'],
97 ];
98 }
99
100 return empty( $experiments_data ) ? null : $experiments_data;
101 }
102 }
103