PluginProbe
Lasso Lite – Affiliate Link Manager & Product Displays / 151
Lasso Lite – Affiliate Link Manager & Product Displays v151
157 155 156 154 153 152 151 150 149 148 trunk 0.9.9 104 105 106 107 108 109 110 111 112 113 114 115 116 All 56 releases
simple-urls / classes / class-license.php

class-license.php in Lasso Lite – Affiliate Link Manager & Product Displays 151, at classes/class-license.php

173 lines 4.8 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 /**
3 * Declare class License
4 *
5 * @package License
6 */
7
8 namespace LassoLite\Classes;
9
10 use LassoLite\Classes\Helper as Lasso_Helper;
11 use LassoLite\Classes\Setting as Lasso_Setting;
12 use LassoLite\Admin\Constant;
13
14 /**
15 * Lasso_License
16 */
17 class License {
18 /**
19 * Get license of user
20 */
21 public static function get_license() {
22 return Lasso_Setting::get_setting( 'license_serial', '' );
23 }
24
25 /**
26 * Get site id of user
27 */
28 public static function get_site_id() {
29 return Lasso_Setting::get_setting( 'site_id', '' );
30 }
31
32 /**
33 * Save site id of user
34 *
35 * @param string $site_id Site id of website.
36 */
37 public static function save_site_id( $site_id ) {
38 return Lasso_Setting::set_setting( 'site_id', $site_id );
39 }
40
41 /**
42 * Check license of user
43 *
44 * @param string $license_id License of user.
45 * @param boolean $update_db Whether licens status is updated in DB. Default to true.
46 */
47 public static function check_license( $license_id, $update_db = true ) {
48 $headers = Lasso_Helper::get_headers( $license_id );
49 $request_url = Constant::LASSO_LINK . '/license/status';
50
51 $res = Lasso_Helper::send_request( 'get', $request_url, array(), $headers );
52
53 $status_code = $res['status_code'];
54 $response = ( isset( $res['response'] ) && is_object( $res['response'] ) ) ? $res['response'] : null;
55
56 $error_code = 'other';
57 $error_message = 'Error!';
58 $status = false;
59
60 if ( 200 === $status_code && null !== $response ) {
61 // ? store user email
62 if ( isset( $response->email ) && '' !== $response->email ) {
63 update_option( 'lasso_lite_license_email', $response->email );
64 }
65 if ( isset( $response->end_date ) && $response->end_date > 0 ) {
66 update_option( 'lasso_lite_end_date', $response->end_date );
67 }
68
69 $status = true;
70 } elseif ( 401 === $status_code && null !== $response ) {
71 $error_code = $response->error_code ?? $error_code;
72 $error_message = $response->message ?? $error_message;
73 $status = false;
74
75 $is_connected_aff = $response->is_connected_aff ?? 0;
76 Helper::update_option( Constant::LASSO_OPTION_IS_CONNECTED_AFFILIATE, $is_connected_aff );
77 } else {
78 $update_db = false; // ? Don't update DB if the status is not 200, 401
79 $error_message = $res['message'] ?? $error_message;
80 }
81
82 // ? store user hash
83 if ( null !== $response && isset( $response->hash ) && '' !== $response->hash ) {
84 update_option( 'lasso_lite_license_hash', $response->hash );
85 }
86
87 // ? update license status in DB
88 if ( $update_db && null !== $response ) {
89 $db_status = $status && 1 == $response->is_startup_plan ? 1 : 0; // phpcs:ignore
90 update_option( 'lasso_lite_license_status', $db_status, true );
91 }
92
93 if ( null === $response || 1 !== $response->is_startup_plan ) {
94 $status = false;
95 }
96
97 return array( Lasso_Helper::cast_to_boolean( $status ), $error_code, $error_message );
98 }
99
100 /**
101 * Check license in setting
102 */
103 public static function check_user_license() {
104 $license = self::get_license();
105 if ( empty( $license ) ) {
106 return false;
107 }
108
109 list($license_status, $error_code, $error_message) = self::check_license( $license );
110
111 return $license_status;
112 }
113
114 /**
115 * Get license status in DB
116 */
117 public static function get_license_status() {
118 $db_status = get_option( 'lasso_lite_license_status', '' );
119 $active_license = Lasso_Helper::cast_to_boolean( $db_status );
120
121 // ? re-activate again if option `lasso_license_status` is not existing
122 if ( '' === $db_status ) {
123 $active_license = Lasso_Helper::cast_to_boolean( self::check_user_license() );
124 }
125
126 return $active_license;
127 }
128
129 /**
130 * Send install data to Lasso server
131 */
132 public static function lasso_getinfo($ignore_keys = array()) {
133 global $wp_version;
134 global $wpdb;
135
136 // ? Report in
137 $data = array(
138 'installed_version' => LASSO_LITE_VERSION,
139 'datetime' => gmdate( 'Y-m-d H:i:s' ),
140 'site_id' => self::get_site_id(),
141 'install_url' => site_url(),
142 'license_key' => self::get_license(),
143 'wordpress_version' => $wp_version,
144 'php_version' => phpversion(),
145 'mysql_version' => $wpdb->db_version(),
146 'is_classic_editor' => Lasso_Helper::is_classic_editor() ? 1 : 0
147 );
148
149 $settings = Lasso_Setting::get_settings();
150 $email_db = $settings[ Enum::EMAIL_SUPPORT ] ?? '';
151 if ( ! empty( $email_db ) ) {
152 $data['email'] = $email_db;
153 }
154 if ( ! empty( $ignore_keys ) ) {
155 foreach ( $ignore_keys as $key ) {
156 unset( $data[ $key ] );
157 }
158 }
159
160 // phpcs:ignore
161 $response = Lasso_Helper::send_request( 'post', Constant::LASSO_LINK . '/server-lite/getinfo', $data );
162
163 $response_body = ( isset( $response['response'] ) && is_object( $response['response'] ) ) ? $response['response'] : null;
164 $site_id = ( null !== $response_body ) ? ( $response_body->site_id ?? '' ) : '';
165
166 if ( $site_id ) {
167 self::save_site_id( $site_id ); // ? save site_id from DB
168 }
169
170 return $response;
171 }
172 }
173