69 lines
1.7 KiB
PHP
69 lines
1.7 KiB
PHP
<?php
|
|
namespace ElementorPro\Modules\WpCli;
|
|
|
|
use ElementorPro\License\Admin;
|
|
use ElementorPro\License\API;
|
|
|
|
if ( ! defined( 'ABSPATH' ) ) {
|
|
exit; // Exit if accessed directly
|
|
}
|
|
|
|
/**
|
|
* Elementor Page Builder Pro cli tools.
|
|
*/
|
|
class License_Command extends \WP_CLI_Command {
|
|
|
|
/**
|
|
* Activate Elementor Pro License key.
|
|
*
|
|
* ## EXAMPLES
|
|
*
|
|
* 1. wp elementor-pro license activate <license-key>
|
|
* - This will try activate your license key.
|
|
*/
|
|
public function activate( $args, $assoc_args ) {
|
|
$license_key = $args[0];
|
|
$data = API::activate_license( $args[0] );
|
|
|
|
if ( is_wp_error( $data ) ) {
|
|
\WP_CLI::error( sprintf( '%s (%s) ', $data->get_error_message(), $data->get_error_code() ) );
|
|
}
|
|
|
|
if ( ! $data['success'] ) {
|
|
$errors = [
|
|
'no_activations_left' => 'You have no more activations left.',
|
|
'expired' => 'Your License Has Expired',
|
|
'missing' => 'Your license is missing. Please check your key again.',
|
|
'cancelled' => 'Your license key has been cancelled',
|
|
'key_mismatch' => 'Your license is invalid for this domain. Please check your key again.',
|
|
];
|
|
|
|
if ( isset( $errors[ $data['error'] ] ) ) {
|
|
$error_msg = $errors[ $data['error'] ];
|
|
} else {
|
|
$error_msg = 'An error occurred. (' . $data['error'] . ')';
|
|
}
|
|
|
|
\WP_CLI::error( $error_msg );
|
|
}
|
|
|
|
Admin::set_license_key( $license_key );
|
|
API::set_license_data( $data );
|
|
|
|
\WP_CLI::success( 'The License has been activated successfully.' );
|
|
}
|
|
|
|
/**
|
|
* Deactivate Elementor Pro License key.
|
|
*
|
|
* ## EXAMPLES
|
|
*
|
|
* 1. wp elementor-pro license deactivate.
|
|
* - This will deactivate your license key.
|
|
*/
|
|
public function deactivate() {
|
|
Admin::deactivate();
|
|
\WP_CLI::success( 'The License has been deactivated successfully.' );
|
|
}
|
|
}
|