· 6 years ago · Oct 09, 2019, 08:30 AM
1function ampforwp_get_licence_activate_update(){
2 if(!wp_verify_nonce( $_REQUEST['verify_nonce'], 'verify_extension' ) ) {
3 echo json_encode(array("status"=>300,"message"=>'Request not valid'));
4 die;
5 }
6 // Exit if the user does not have proper permissions
7 if(! current_user_can( 'manage_options' ) ) {
8 echo json_encode(array("status"=>300,"message"=>'User not have authority'));
9 die;
10 }
11 $selectedOption = get_option('redux_builder_amp',true);
12 if($_SERVER['REQUEST_METHOD']=='POST'){
13 $ampforwp_license_activate = sanitize_text_field($_POST['ampforwp_license_activate']);
14 $license = sanitize_text_field($_POST['license']);
15 $item_name = sanitize_text_field($_POST['item_name']);
16 $store_url = sanitize_text_field($_POST['store_url']);
17 $plugin_active_path = sanitize_text_field($_POST['plugin_active_path']);
18 $status = 300;
19 if($license==""){
20 $message = "Please Enter valid license key";
21 }else{
22 $selectedOption['amp-license'][$ampforwp_license_activate]['license'] = $license;
23 $selectedOption['amp-license'][$ampforwp_license_activate]['item_name'] = $item_name;
24 $selectedOption['amp-license'][$ampforwp_license_activate]['store_url'] = $store_url;
25 $selectedOption['amp-license'][$ampforwp_license_activate]['plugin_active_path'] = $plugin_active_path;
26 }
27
28
29 if( isset($selectedOption['amp-license']) && "" != $selectedOption['amp-license']){
30 // data to send in our API request
31 $api_params = array(
32 'edd_action' => 'activate_license',
33 'license' => $license,
34 'item_name' => urlencode( $item_name ), // the name of our product in EDD
35 'url' => home_url()
36 );
37
38 // Call the custom API.
39 $response = wp_remote_post( $store_url, array( 'timeout' => 15, 'sslverify' => false, 'body' => $api_params ) );
40 $message = '';
41 // make sure the response came back okay
42 if ( is_wp_error( $response ) || 200 !== wp_remote_retrieve_response_code( $response ) ) {
43
44 if ( is_wp_error( $response ) ) {
45 $message = $response->get_error_message();
46 } else {
47 $message = esc_html__( 'An error occurred, please try again.', 'accelerated-mobile-pages' );
48 }
49
50 } else {
51 $response = wp_remote_retrieve_body( $response );
52 $license_data = json_decode( $response );
53 if ( false === $license_data->success ) {
54 switch( $license_data->error ) {
55 case 'expired' :
56 $message = sprintf(
57 esc_html__( 'Your license key expired on %s.', 'accelerated-mobile-pages' ),
58 date_i18n( get_option( 'date_format' ), strtotime( $license_data->expires, current_time( 'timestamp' ) ) )
59 );
60 $message .= "<a href='".$store_url."/checkout-2/?edd_license_key=16ed15c13524cc7e00346eeb3f76e412'>Renew Link</a>";
61 break;
62
63 case 'revoked' :
64
65 $message = esc_html__( 'Your license key has been disabled.', 'accelerated-mobile-pages' );
66 break;
67
68 case 'missing' :
69 $message = esc_html__( 'Invalid license.', 'accelerated-mobile-pages' );
70 break;
71
72 case 'invalid' :
73 case 'site_inactive' :
74
75 $message = esc_html__( 'Your license is not active for this URL.', 'accelerated-mobile-pages' );
76 break;
77
78 case 'item_name_mismatch' :
79
80 $message = sprintf(
81 esc_html__( 'This appears to be an invalid license key for %s.', 'accelerated-mobile-pages' ),
82 $item_name
83 );
84 break;
85
86 case 'no_activations_left':
87
88 $message = esc_html__( 'Your license key has reached its activation limit.', 'accelerated-mobile-pages' );
89 break;
90
91 default :
92
93 $message = esc_html__( 'An error occurred, please try again.', 'accelerated-mobile-pages' );
94 break;
95 }
96
97 }
98
99 }//else Closed
100 // Check if anything passed on a message constituting a failure
101 $status = false;
102 if ( ! empty( $message ) ) {
103 if(isset($license_data) && is_object($license_data)){
104 $status = $license_data->error;
105 }else{
106 $status = "An error occurred, Error type not found.";
107 }
108 }else{
109 $status = $license_data->license;
110 $limit = ampforwp_set_plugin_limit( true, $license_data, $ampforwp_license_activate);
111 $selectedOption['amp-license'][$ampforwp_license_activate]['limit'] = $limit;
112 //$selectedOption['amp-license'][$ampforwp_license_activate]['all_data'] = json_decode($response,true);
113 $response_all_data = json_decode($response,true);
114 $selectedOption['amp-license'][$ampforwp_license_activate]['all_data']['success'] = $response_all_data['success'];
115 $selectedOption['amp-license'][$ampforwp_license_activate]['all_data']['license'] = $response_all_data['license'];
116 $selectedOption['amp-license'][$ampforwp_license_activate]['all_data']['item_name'] = $response_all_data['item_name'];
117 $selectedOption['amp-license'][$ampforwp_license_activate]['all_data']['expires'] = $response_all_data['expires'];
118 $selectedOption['amp-license'][$ampforwp_license_activate]['all_data']['customer_name'] = $response_all_data['customer_name'];
119 $selectedOption['amp-license'][$ampforwp_license_activate]['all_data']['customer_email'] = $response_all_data['customer_email'];
120 }
121
122 $selectedOption['amp-license'][$ampforwp_license_activate]['status'] = $status;
123 $selectedOption['amp-license'][$ampforwp_license_activate]['message'] = $message;
124
125 update_option( 'redux_builder_amp', $selectedOption );
126 if($status=='valid'){
127 $status = "200";
128 $message = "Plugin activated successfully";
129 }else{
130 $status = "500";
131 }
132 }
133
134 echo json_encode(array("status"=>$status,"message"=>$message,"other"=> $selectedOption['amp-license'][$ampforwp_license_activate]));
135 die;
136 }
137}