File: /home/deshuvsd/www/wp-content/plugins/cartflows-pro/classes/class-cartflows-pro-license-helper.php
<?php
/**
* CartFlows License.
*
* @package CartFlows
* @since 1.0.0
*/
if ( ! defined( 'ABSPATH' ) ) {
exit; // Exit if accessed directly.
}
if ( ! function_exists( 'cartflows_pro_license_instance' ) ) :
/**
* Get CartFlows license instance globally.
*/
function cartflows_pro_license_instance() {
if ( class_exists( 'CartFlows_Pro_Licence' ) ) {
return CartFlows_Pro_Licence::get_instance();
}
return false;
}
endif;
if ( ! function_exists( 'cartflows_pro_license_request' ) ) :
/**
* License Request for Site
*
* @since 1.6.13
*
* @param string $license_key License key.
* @param integer $site_id Site ID.
* @param string $request_type Request type (activate or deactivate).
* @return mixed
*/
function cartflows_pro_license_request( $license_key = '', $site_id = 1, $request_type = '' ) {
if ( empty( $license_key ) ) {
return new WP_Error( 'empty_license_key', __( 'Provide a license key to process license request!', 'cartflows-pro' ) );
}
if ( empty( $request_type ) ) {
return new WP_Error( 'empty_license_request', __( 'Provide a license request!', 'cartflows-pro' ) );
}
$requests = array( 'activate', 'deactivate' );
if ( ! in_array( $request_type, $requests, true ) ) {
return new WP_Error( 'invalid_license_request', __( 'Invalid license request!', 'cartflows-pro' ) );
}
$wc_am_domain = str_ireplace( array( 'http://', 'https://' ), '', get_site_url( $site_id ) );
$args = array(
'api_key' => $license_key,
'object' => $wc_am_domain,
);
$product_id = cartflows_pro_license_instance()->product_id;
if ( 'activate' === $request_type ) {
$request = cartflows_pro_license_instance()->activation_request( $args );
$response = json_decode( $request, true );
if ( $response && true === $response['success'] && true === $response['activated'] ) {
$data = array(
'api_key' => $license_key,
);
// Store the API key.
update_option( 'wc_am_client_' . $product_id . '_api_key', $data );
// Activate.
update_option( 'wc_am_client_' . $product_id . '_activated', 'Activated' );
// Store the API key which used for plugin update.
$new_data = array(
'wc_am_client_' . $product_id . '_api_key' => $data['api_key'],
);
update_option( 'wc_am_client_' . $product_id, $new_data );
}
} elseif ( 'deactivate' === $request_type ) {
$request = cartflows_pro_license_instance()->deactivate_request( $args );
$response = json_decode( $request, true );
if ( $response && true === $response['success'] && true === $response['deactivated'] ) {
$default_args = array(
'api_key' => '',
);
update_option( 'wc_am_client_' . $product_id . '_activated', 'Deactivated' );
update_option( 'wc_am_client_' . $product_id . '_api_key', $default_args );
// Store the API key which used for plugin update.
$new_data = array(
'wc_am_client_' . $product_id . '_api_key' => $default_args['api_key'],
);
update_option( 'wc_am_client_' . $product_id, $new_data );
}
}
return json_decode( $request, true );
}
endif;
if ( ! function_exists( 'cartflows_pro_activate' ) ) :
/**
* Activate License Request for Site
*
* @since 1.6.13
*
* @param string $license_key License key.
* @param integer $site_id Site ID.
* @return mixed
*/
function cartflows_pro_activate( $license_key = '', $site_id = 1 ) {
return cartflows_pro_license_request( $license_key, $site_id, 'activate' );
}
endif;
if ( ! function_exists( 'cartflows_pro_deactivate' ) ) :
/**
* Deactivate License Request for Site
*
* @since 1.6.13
*
* @param string $license_key License key.
* @param integer $site_id Site ID.
* @return mixed
*/
function cartflows_pro_deactivate( $license_key = '', $site_id = 1 ) {
return cartflows_pro_license_request( $license_key, $site_id, 'deactivate' );
}
endif;
if ( ! function_exists( 'cartflows_pro_is_active_license' ) ) :
/**
* Activate Status
*
* @since 1.6.13
*
* @return bool
*/
function cartflows_pro_is_active_license() {
// is_object added to avoid Trying to get property 'activate_status' of non-object error in some cases.
$status = is_object( cartflows_pro_license_instance() ) ? cartflows_pro_license_instance()->activate_status : '';
if ( 'Activated' === $status ) {
return true;
}
return false;
}
endif;
if ( ! function_exists( 'cartflows_pro_get_product_id' ) ) :
/**
* Get CartFlows Product ID
*
* @since x.x.x
* @return bool
*/
function cartflows_pro_get_product_id() {
return class_exists( 'CartFlows_Pro_Licence' ) ? cartflows_pro_license_instance()->product_id : '';
}
endif;