first commit
This commit is contained in:
139
wp-content/plugins/elementor-pro/core/connect/apps/activate.php
Normal file
139
wp-content/plugins/elementor-pro/core/connect/apps/activate.php
Normal file
@@ -0,0 +1,139 @@
|
||||
<?php
|
||||
namespace ElementorPro\Core\Connect\Apps;
|
||||
|
||||
use Elementor\Core\Common\Modules\Connect\Apps\Common_App;
|
||||
use ElementorPro\License;
|
||||
use ElementorPro\License\API;
|
||||
|
||||
if ( ! defined( 'ABSPATH' ) ) {
|
||||
exit; // Exit if accessed directly
|
||||
}
|
||||
|
||||
class Activate extends Common_App {
|
||||
public function get_title() {
|
||||
return esc_html__( 'Activate', 'elementor-pro' );
|
||||
}
|
||||
|
||||
public function get_slug() {
|
||||
return 'activate';
|
||||
}
|
||||
|
||||
protected function after_connect() {
|
||||
$this->action_activate_license();
|
||||
}
|
||||
|
||||
/**
|
||||
* @since 2.3.0
|
||||
* @access public
|
||||
*/
|
||||
public function action_authorize() {
|
||||
// In case the first connect was not from Activate App - require a new authorization.
|
||||
if ( $this->is_connected() && ! License\Admin::get_license_key() ) {
|
||||
$this->disconnect();
|
||||
}
|
||||
|
||||
parent::action_authorize();
|
||||
}
|
||||
|
||||
public function action_activate_pro() {
|
||||
$this->action_activate_license();
|
||||
}
|
||||
|
||||
public function action_switch_license() {
|
||||
$this->disconnect();
|
||||
$this->action_authorize();
|
||||
}
|
||||
|
||||
public function action_deactivate() {
|
||||
License\Admin::deactivate();
|
||||
$this->disconnect();
|
||||
wp_safe_redirect( License\Admin::get_url() );
|
||||
die;
|
||||
}
|
||||
|
||||
public function action_activate_license() {
|
||||
if ( ! $this->is_connected() ) {
|
||||
$this->add_notice( esc_html__( 'Please connect to Elementor in order to activate license.', 'elementor-pro' ), 'error' );
|
||||
|
||||
$this->redirect_to_admin_page();
|
||||
}
|
||||
|
||||
$license = $this->request( 'get_connected_license' );
|
||||
|
||||
if ( empty( $license ) ) {
|
||||
// TODO: add suggestions how to check/resolve.
|
||||
wp_die( 'License not found for user ' . esc_attr( $this->get( 'user' )->email ), esc_html__( 'Elementor Pro', 'elementor-pro' ), [
|
||||
'back_link' => true,
|
||||
] );
|
||||
}
|
||||
|
||||
if ( is_wp_error( $license ) ) {
|
||||
wp_die( $license, esc_html__( 'Elementor Pro', 'elementor-pro' ), [ // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
|
||||
'back_link' => true,
|
||||
] );
|
||||
}
|
||||
|
||||
$license_key = trim( $license->key );
|
||||
|
||||
if ( empty( $license_key ) ) {
|
||||
wp_die( esc_html__( 'License key is missing.', 'elementor-pro' ), esc_html__( 'Elementor Pro', 'elementor-pro' ), [
|
||||
'back_link' => true,
|
||||
] );
|
||||
}
|
||||
|
||||
$data = License\API::activate_license( $license_key );
|
||||
|
||||
if ( is_wp_error( $data ) ) {
|
||||
wp_die( sprintf( '%s (%s) ', $data->get_error_message(), $data->get_error_code() ), esc_html__( 'Elementor Pro', 'elementor-pro' ), [ // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
|
||||
'back_link' => true,
|
||||
] );
|
||||
}
|
||||
|
||||
if ( empty( $data['success'] ) ) {
|
||||
$error_msg = License\API::get_error_message( $data['error'] ); // get_error_message() escapes html
|
||||
|
||||
wp_die( $error_msg, esc_html__( 'Elementor Pro', 'elementor-pro' ), [ // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
|
||||
'back_link' => true,
|
||||
] );
|
||||
}
|
||||
|
||||
License\Admin::set_license_key( $license_key );
|
||||
|
||||
License\API::set_license_data( $data );
|
||||
|
||||
$this->add_notice( esc_html__( 'License has been activated successfully.', 'elementor-pro' ) );
|
||||
|
||||
$this->redirect_to_admin_page( License\Admin::get_url() );
|
||||
die;
|
||||
}
|
||||
|
||||
public function action_reset() {
|
||||
if ( current_user_can( 'manage_options' ) ) {
|
||||
delete_option( 'elementor_pro_license_key' );
|
||||
delete_transient( 'elementor_pro_license_data' );
|
||||
}
|
||||
|
||||
$this->redirect_to_admin_page();
|
||||
}
|
||||
|
||||
protected function get_popup_success_event_data() {
|
||||
return [
|
||||
'templates_access_level' => API::get_library_access_level( 'template' ),
|
||||
'kits_access_level' => API::get_library_access_level( 'kit' ),
|
||||
'access_tier' => API::get_access_tier(),
|
||||
];
|
||||
}
|
||||
|
||||
protected function get_app_info() {
|
||||
return [
|
||||
'license_data' => [
|
||||
'label' => 'License Data',
|
||||
'value' => get_option( '_elementor_pro_license_data' ),
|
||||
],
|
||||
'license_key' => [
|
||||
'label' => 'License Key',
|
||||
'value' => get_option( 'elementor_pro_license_key' ),
|
||||
],
|
||||
];
|
||||
}
|
||||
}
|
||||
28
wp-content/plugins/elementor-pro/core/connect/manager.php
Normal file
28
wp-content/plugins/elementor-pro/core/connect/manager.php
Normal file
@@ -0,0 +1,28 @@
|
||||
<?php
|
||||
namespace ElementorPro\Core\Connect;
|
||||
|
||||
use ElementorPro\Core\Connect\Apps\Activate;
|
||||
|
||||
if ( ! defined( 'ABSPATH' ) ) {
|
||||
exit; // Exit if accessed directly
|
||||
}
|
||||
|
||||
class Manager {
|
||||
|
||||
/**
|
||||
* @param \Elementor\Core\Common\Modules\Connect\Module $apps_manager
|
||||
*/
|
||||
public function register_apps( $apps_manager ) {
|
||||
$apps = [
|
||||
'activate' => Activate::get_class_name(),
|
||||
];
|
||||
|
||||
foreach ( $apps as $slug => $class ) {
|
||||
$apps_manager->register_app( $slug, $class );
|
||||
}
|
||||
}
|
||||
|
||||
public function __construct() {
|
||||
add_action( 'elementor/connect/apps/register', [ $this, 'register_apps' ] );
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user