PluginProbe
Elementor Website Builder – more than just a page builder / 4.3.0-beta2
Elementor Website Builder – more than just a page builder v4.3.0-beta2
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 / variables / module.php

module.php in Elementor Website Builder – more than just a page builder 4.3.0-beta2, at modules/variables/module.php

85 lines 2.3 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 namespace Elementor\Modules\Variables;
4
5 use Elementor\Core\Base\Module as BaseModule;
6 use Elementor\Modules\AtomicWidgets\Module as AtomicWidgetsModule;
7 use Elementor\Modules\Variables\Classes\Variable_Types_Registry;
8 use Elementor\Modules\Variables\ImportExportCustomization\Import_Export_Customization;
9 use Elementor\Modules\Variables\PropTypes\Color_Variable_Prop_Type;
10 use Elementor\Modules\Variables\PropTypes\Font_Variable_Prop_Type;
11 use Elementor\Modules\Variables\Storage\Constants;
12 use Elementor\Plugin;
13
14 if ( ! defined( 'ABSPATH' ) ) {
15 exit;
16 }
17
18 class Module extends BaseModule {
19 const MODULE_NAME = 'e-variables';
20 const EXPERIMENT_NAME = AtomicWidgetsModule::EXPERIMENT_NAME;
21
22 private Variable_Types_Registry $variable_types_registry;
23
24 public function get_name() {
25 return self::MODULE_NAME;
26 }
27
28 private function hooks() {
29 return new Hooks();
30 }
31
32 public function __construct() {
33 parent::__construct();
34
35 if ( ! $this->is_experiment_active() ) {
36 return;
37 }
38
39 $this->hooks()->register();
40
41 ( new Import_Export_Customization() )->register_hooks();
42
43 add_action( 'init', [ $this, 'init_variable_types_registry' ] );
44 add_filter( 'elementor/kit/meta_to_preserve_on_kit_import', [ $this, 'add_meta_to_preserve_on_kit_import' ] );
45 add_action( 'elementor/editor/before_enqueue_scripts', fn () => $this->enqueue_editor_scripts() );
46 }
47
48 private function is_experiment_active(): bool {
49 return Plugin::$instance->experiments->is_feature_active( AtomicWidgetsModule::EXPERIMENT_NAME );
50 }
51
52 public function init_variable_types_registry(): void {
53 $this->variable_types_registry = new Variable_Types_Registry();
54
55 do_action( 'elementor/variables/register', $this->variable_types_registry );
56 }
57
58
59 public function get_variable_types_registry(): Variable_Types_Registry {
60 return $this->variable_types_registry;
61 }
62
63 private function get_quota_config(): array {
64 return [
65 Color_Variable_Prop_Type::get_key() => 100000,
66 Font_Variable_Prop_Type::get_key() => 100000,
67 ];
68 }
69
70 public function enqueue_editor_scripts() {
71
72 wp_add_inline_script(
73 'elementor-common',
74 'window.ElementorVariablesQuotaConfig = ' . wp_json_encode( $this->get_quota_config() ) . ';',
75 'before'
76 );
77 }
78
79 public function add_meta_to_preserve_on_kit_import( array $meta_keys ): array {
80 return array_merge( $meta_keys, [
81 Constants::VARIABLES_META_KEY,
82 ] );
83 }
84 }
85