/var/www/html_de/wp-content/plugins/elementor/modules/pro-install/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
<?php
namespace Elementor\Modules\ProInstall;

use 
Elementor\Core\Admin\Menu\Admin_Menu_Manager;
use 
Elementor\Core\Common\Modules\Connect\Module as ConnectModule;
use 
Elementor\Core\Base\Module as BaseModule;
use 
Elementor\Plugin;
use 
Elementor\Settings;
use 
Elementor\Utils;

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

class 
Module extends BaseModule {

    public function 
get_name() {
        return 
'pro-install';
    }

    public static function 
is_active() {
        return ! 
Utils::has_pro() && current_user_can'manage_options' );
    }

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

        
add_action'admin_post_elementor_do_pro_install', [ $this'admin_post_elementor_do_pro_install' ] );

        
add_action'elementor/connect/apps/register', function ( ConnectModule $connect_module ) {
            
$connect_module->register_app'pro-install'Connect::get_class_name() );
        } );

        
add_action'elementor/admin/menu/register', function( Admin_Menu_Manager $admin_menu ) {
            
$admin_menu->register(
                
'elementor-connect-account',
                new 
Pro_Install_Menu_Item$this->get_connect_app() )
            );
        }, 
116 );
    }

    private function 
get_connect_app(): Connect {
        return 
Plugin::$instance->common->get_component'connect' )->get_app'pro-install' );
    }

    public function 
admin_post_elementor_do_pro_install() {
        if ( ! 
current_user_can'install_plugins' ) ) {
            
wp_dieesc_html__'You do not have sufficient permissions to access this page.''elementor' ) );
        }

        
check_admin_referer'elementor_do_pro_install' );

        
$app $this->get_connect_app();
        
$download_link $app->get_download_link();

        if ( empty( 
$download_link ) ) {
            
wp_dieesc_html__'There are no available subscriptions at the moment.''elementor' ) );
        }

        
$plugin_installer = new Plugin_Installer'elementor-pro'$download_link );
        
$response $plugin_installer->install();

        if ( 
is_wp_error$response ) ) {
            
wp_dieesc_html$response->get_error_message() ) );
        }

        
wp_safe_redirectadmin_url'admin.php?page=elementor-license' ) );
    }
}