/var/www/html/wp-content/plugins/elementor/modules/promotions/widgets/pro-widget-promotion.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
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
<?php
namespace Elementor\Modules\Promotions\Widgets;

use 
Elementor\Widget_Base;
use 
Elementor\Core\Utils\Promotions\Filtered_Promotions_Manager;

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

class 
Pro_Widget_Promotion extends Widget_Base {

    private 
$widget_data;

    public function 
hide_on_search() {
        return 
true;
    }

    public function 
show_in_panel() {
        return 
false;
    }

    public function 
get_name() {
        return 
$this->widget_data['widget_name'];
    }

    public function 
get_title() {
        return 
$this->widget_data['widget_title'];
    }

    public function 
on_import$element ) {
        
$element['settings']['__should_import'] = true;

        return 
$element;
    }

    protected function 
register_controls() {}

    protected function 
render() {
        if ( 
$this->is_editor_render() ) {
            
$this->render_promotion();
        } else {
            
$this->render_empty_content();
        }
    }

    private function 
is_editor_render(): bool {
        return 
\Elementor\Plugin::$instance->editor->is_edit_mode();
    }

    private function 
render_promotion() {
        
$promotion Filtered_Promotions_Manager::get_filtered_promotion_data(
            [
                
'image_url' => esc_url$this->get_promotion_image_url() ),
                
'text' => sprintf(
                    
esc_html__'This result includes the Elementor Pro %s widget. Upgrade now to unlock it and grow your web creation toolkit.''elementor' ),
                    
esc_html$this->widget_data['widget_title'] )
                ),
                
'upgrade_url' => esc_url'https://go.elementor.com/go-pro-element-pro/' ),
            ],
            
'elementor/pro-widget/promotion',
            
'upgrade_url'
        
);
        
?>
        <div class="e-container">
            <span class="e-badge"><i class="eicon-lock" aria-hidden="true"></i> <?php echo esc_html__'Pro''elementor' ); ?></span>
            <p>
                <img src="<?php echo esc_url$promotion['image_url'] ); ?>" loading="lazy" alt="Go Pro">
                <?php
                    
echo esc_html$promotion['text'] );
                
?>
            </p>
            <div class="e-actions">
                <a href="#" class="e-btn e-btn-txt e-promotion-delete"><?php echo esc_html__'Remove''elementor' ); ?></a>
                <a href="<?php echo esc_url$promotion['upgrade_url'] ); ?>" rel="noreferrer" target="_blank" class="e-btn go-pro elementor-clickable e-promotion-go-pro"><?php echo esc_html__'Go Pro''elementor' ); ?></a>
            </div>
        </div>
        <?php
    
}

    private function 
get_promotion_image_url(): string {
        return 
ELEMENTOR_ASSETS_URL 'images/go-pro.svg';
    }

    private function 
render_empty_content() {
        echo 
' ';
    }

    protected function 
content_template() {}

    public function 
__construct$data = [], $args null ) {
        
$this->widget_data = [
            
'widget_name' => $args['widget_name'],
            
'widget_title' => $args['widget_title'],
        ];

        
parent::__construct$data$args );
    }

    public function 
render_plain_content$instance = [] ) {}
}