/var/www/html_de/wp-content/plugins/elementor/modules/variables/module.php


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
<?php

namespace Elementor\Modules\Variables;

use 
Elementor\Core\Base\Module as BaseModule;
use 
Elementor\Core\Experiments\Manager as ExperimentsManager;
use 
Elementor\Modules\AtomicWidgets\Module as AtomicWidgetsModule;
use 
Elementor\Modules\Variables\Classes\Variable_Types_Registry;
use 
Elementor\Plugin;

if ( ! 
defined'ABSPATH' ) ) {
    exit; 
// Exit if accessed directly.
}

class 
Module extends BaseModule {
    const 
MODULE_NAME 'e-variables';
    const 
EXPERIMENT_NAME 'e_variables';
    const 
EXPERIMENT_MANAGER_NAME 'e_variables_manager';

    private 
Variable_Types_Registry $variable_types_registry;

    public function 
get_name() {
        return 
self::MODULE_NAME;
    }

    public static function 
get_experimental_data(): array {
        return [
            
'name' => self::EXPERIMENT_NAME,
            
'title' => esc_html__'Variables''elementor' ),
            
'description' => esc_html__'Enable variables. (For this feature to work - Atomic Widgets must be active)''elementor' ),
            
'hidden' => true,
            
'default' => ExperimentsManager::STATE_ACTIVE,
            
'release_status' => ExperimentsManager::RELEASE_STATUS_ALPHA,
        ];
    }

    private function 
hooks() {
        return new 
Hooks();
    }

    public function 
__construct() {
        
parent::__construct();

        if ( ! 
$this->is_experiment_active() ) {
            return;
        }
        
$this->register_features();

        
$this->hooks()->register();

        
add_action'init', [ $this'init_variable_types_registry' ] );
    }

    private function 
register_features() {
        
Plugin::$instance->experiments->add_feature([
            
'name' => self::EXPERIMENT_MANAGER_NAME,
            
'title' => esc_html__'Variables Manager''elementor' ),
            
'description' => esc_html__'Enable variables manager. (For this feature to work - Variables must be active)''elementor' ),
            
'hidden' => true,
            
'default' => ExperimentsManager::STATE_INACTIVE,
            
'release_status' => ExperimentsManager::RELEASE_STATUS_ALPHA,
        ]);
    }

    private function 
is_experiment_active(): bool {
        return 
Plugin::$instance->experiments->is_feature_activeself::EXPERIMENT_NAME )
            && 
Plugin::$instance->experiments->is_feature_activeAtomicWidgetsModule::EXPERIMENT_NAME );
    }

    public function 
init_variable_types_registry(): void {
        
$this->variable_types_registry = new Variable_Types_Registry();

        
do_action'elementor/variables/register'$this->variable_types_registry );
    }


    public function 
get_variable_types_registry(): Variable_Types_Registry {
        return 
$this->variable_types_registry;
    }
}