Current File : /home/resuelf/www/wp-content/plugins/auto-post-thumbnail/admin/ajax/check-license.php |
<?php
/**
* Ajax plugin check licensing
* @author Webcraftic <[email protected]>
* @copyright (c) 2017 Webraftic Ltd
* @version 1.0
*/
// Exit if accessed directly
if ( ! defined( 'ABSPATH' ) ) {
exit;
}
/**
* Обработчик ajax запросов для проверки, активации, деактивации лицензионного ключа
*
* @since 1.4.0
*/
function wapt_check_license() {
check_admin_referer( 'license' );
$action = WAPT_Plugin::app()->request->post( 'license_action', false, true );
$license_key = WAPT_Plugin::app()->request->post( 'licensekey', null );
if ( empty( $action ) || ! in_array( $action, array( 'activate', 'deactivate', 'sync', 'unsubscribe' ) ) ) {
wp_send_json_error( array( 'error_message' => __( 'Licensing action not passed or this action is prohibited!', 'apt' ) ) );
die();
}
$licensing = WAPT_Plugin::app()->premium;
$result = null;
$success_message = '';
switch ( $action ) {
case 'activate':
if ( empty( $license_key ) || strlen( $license_key ) > 32 ) {
wp_send_json_error( array( 'error_message' => __( 'License key is empty or license key too long (license key is 32 characters long)', 'apt' ) ) );
} else {
$result = $licensing->activate( $license_key );
$success_message = __( 'Your license has been successfully activated', 'apt' );
}
break;
case 'deactivate':
$result = $licensing->deactivate();
$success_message = __( 'The license is deactivated', 'apt' );
break;
case 'sync':
$result = $licensing->sync();
$success_message = __( 'The license has been updated', 'apt' );
break;
case 'unsubscribe':
$result = $licensing->cancel_paid_subscription();
$success_message = __( 'Subscription success cancelled', 'apt' );
break;
}
if ( is_wp_error( $result ) ) {
/**
* Экшен выполняет, когда проверка лицензии вернула ошибку
*
* @param string $action
* @param string $license_key
*
* @since 1.4.0
*/
add_action( 'wbcr/apt/check_license_error', $action, $license_key );
wp_send_json_error( array( 'error_message' => $result->get_error_message() ) );
die();
}
/**
* Экшен выполняет, когда проверка лицензии успешно завершена
*
* @param string $action
* @param string $license_key
*
* @since 1.4.0
*/
add_action( 'wbcr/apt/check_license_success', $action, $license_key );
wp_send_json_success( array( 'message' => $success_message ) );
die();
}
add_action( 'wp_ajax_wapt_check_license', 'wapt_check_license' );