function check_license_activation() { $envato_username = isset($_POST['username']) ? $_POST['username'] : ''; $envato_api_key = isset($_POST['api_key']) ? $_POST['api_key'] : ''; $envato_purchase_code = isset($_POST['purchase_code']) ? $_POST['purchase_code'] : ''; $envato_activate_license = isset($_POST['doActivation']) ? (int) $_POST['doActivation'] : 1; $license_info = get_option('msp_envato_license', array()); $error = ""; if ($envato_activate_license) { // activate the license $is_actived = msp_maybe_activate_license($envato_username, $envato_api_key, $envato_purchase_code); if ($is_actived) { $message = __('Your license activated successfully. Thank you!', MSWP_TEXT_DOMAIN); $license_info['username'] = $envato_username; $license_info['api_key'] = $envato_api_key; $license_info['purchase_code'] = $envato_purchase_code; update_option('msp_envato_license', $license_info); update_option(MSWP_SLUG . '_is_license_actived', $is_actived); } else { $message = __('The license activation failed. Please try again later.', MSWP_TEXT_DOMAIN); $error = msp_get_license_result($envato_username, $envato_api_key, $envato_purchase_code); } } else { $is_actived = false; $message = __('Your license deactivated successfully', MSWP_TEXT_DOMAIN); $license_info['username'] = ''; $license_info['api_key'] = ''; $license_info['purchase_code'] = ''; update_option('msp_envato_license', $license_info); update_option(MSWP_SLUG . '_is_license_actived', 0); } echo json_encode(array('success' => (int) $is_actived, 'message' => $message, 'error' => $error)); exit; // IMPORTANT }
/** * Whether the license info is valid or not * * @param string $username envato username * @param string $api_key envato user secret api * @param string $purchase_code item purchase code * @return bool True if license info is valid and False otherwise */ function msp_is_valid_license($username, $api_key, $purchase_code) { $result = msp_get_license_result($username, $api_key, $purchase_code); if (!$result || !isset($result['download-purchase']['download_url'])) { return false; } return true; }