PluginProbe
Lasso Lite – Affiliate Link Manager & Product Displays / 111
Lasso Lite – Affiliate Link Manager & Product Displays v111
158 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 All 57 releases
← All changes | classes/class-setting.php +45 -147 157111 View file →
@@ -14,12 +14,8 @@
14 14 /**
15 15 * Setting
16 16 */
17 17 class Setting {
18 - const DISPLAY_TYPE_SINGLE = 'Single';
19 - const DISPLAY_TYPE_GRID = 'Grid';
20 - const DISPLAY_TYPE_LIST = 'List';
21 -
22 18 /**
23 19 * Convert WP GET parameters to Lasso GET
24 20 *
25 21 * @var array|string $get
@@ -49,15 +45,8 @@
49 45 'easy-affiliate-links/easy-affiliate-links.php',
50 46 );
51 47
52 48 /**
53 - * Settings general page
54 - *
55 - * @var string $settings_general_page
56 - */
57 - public $settings_general_page = 'settings-general';
58 -
59 - /**
60 49 * Setting constructor.
61 50 */
62 51 public function __construct() {
63 52 $this->get = Helper::GET();
@@ -72,15 +61,8 @@
72 61 return 'edit.php' === $pagenow && isset( $this->get['post_type'] ) && SIMPLE_URLS_SLUG === $this->get['post_type'] && isset( $this->get['page'] );
73 62 }
74 63
75 64 /**
76 - * Dashboard page
77 - *
78 - * @var string $dashboard_page
79 - */
80 - public $dashboard_page = 'dashboard';
81 -
82 - /**
83 65 * Check whether current page is WP post page
84 66 */
85 67 public function is_wordpress_post() {
86 68 global $pagenow;
@@ -204,26 +186,8 @@
204 186 return $this->is_surls_page() && Helper::add_prefix_page( Enum::PAGE_DASHBOARD ) === $this->current_page;
205 187 }
206 188
207 189 /**
208 - * Check current page is opportunities page
209 - *
210 - * @return bool
211 - */
212 - public function is_opportunities_page() {
213 - return $this->is_surls_page() && Helper::add_prefix_page( Enum::PAGE_OPPORTUNITIES ) === $this->current_page;
214 - }
215 -
216 - /**
217 - * Check current page is tables page
218 - *
219 - * @return bool
220 - */
221 - public function is_tables_page() {
222 - return $this->is_surls_page() && Helper::add_prefix_page( Enum::PAGE_TABLES ) === $this->current_page;
223 - }
224 -
225 - /**
226 190 * Check current page is setting page
227 191 *
228 192 * @return bool
229 193 */
@@ -309,94 +273,60 @@
309 273 public static function save_support( $is_ajax = true ) {
310 274 $post = Helper::POST();
311 275 $email = $post['email'] ?? '';
312 276 $is_subscribe = $post['is_subscribe'] ?? '';
313 - $share_diagnostics = $post['share_diagnostics'] ?? 1; // Default to 1 (checked)
314 -
315 -
316 - $settings = self::get_settings();
317 - $share_diagnostics_db = $settings[ Enum::SHARE_DIAGNOSTICS ] ?? '';
318 - $email_db = $settings[ Enum::EMAIL_SUPPORT ] ?? '';
319 -
320 - if ( $is_ajax ) {
321 - $settings[ Enum::IS_SUBSCRIBE ] = $is_subscribe;
322 - $settings[ Enum::EMAIL_SUPPORT ] = $email;
323 - $settings[ Enum::SHARE_DIAGNOSTICS ] = $share_diagnostics;
277 + if ( $is_ajax && false === is_email( $email ) ) {
278 + wp_send_json_success(
279 + array(
280 + 'success' => false,
281 + 'msg' => 'Email is invalid.',
282 + )
283 + );
324 284 } else {
325 - $email = $settings[ Enum::EMAIL_SUPPORT ];
326 - }
327 - $support_enable_time = $settings[ Enum::SUPPORT_ENABLED_TIME ] ?? '';
328 - $current_date = date( 'm/d/Y', time() ); // phpcs:ignore
329 - if ( ! $is_ajax || empty( $support_enable_time ) || $current_date > $support_enable_time || $share_diagnostics_db !== $share_diagnostics || $email !== $email_db ) {
330 - global $wp_version;
331 - $jwt_data = array(
332 - 'email' => $email,
333 - 'installed_version' => LASSO_LITE_VERSION,
334 - 'datetime' => gmdate( 'Y-m-d H:i:s' ),
335 - 'site_id' => License::get_site_id(),
336 - 'install_url' => site_url(),
337 - 'wordpress_version' => $wp_version,
338 - 'php_version' => phpversion(),
339 - 'mysql_version' => Model::get_wpdb()->db_version(),
340 - 'is_classic_editor' => Helper::is_classic_editor() ? 1 : 0,
341 - 'share_diagnostics' => $share_diagnostics,
342 - );
285 + $settings = self::get_settings();
343 286
344 - $jwt = JWT::encode( $jwt_data, Constant::JWT_SECRET_KEY, 'HS256' );
345 - $data['data'] = $jwt;
346 - $response = Helper::send_request( 'post', Constant::LASSO_LINK . '/lasso-lite/enable-support', $data );
347 - $response_body = ( isset( $response['response'] ) && is_object( $response['response'] ) ) ? $response['response'] : null;
348 - $is_succeed = null !== $response_body && boolval( $response_body->succeed ?? false );
349 - if ( $is_succeed ) {
350 - $user_hash = $response_body->user_hash;
351 - $intercom_jwt = $response_body->intercom_jwt;
352 - $settings[ Enum::SUPPORT_ENABLED_TIME ] = date( 'm/d/Y', time() ); // phpcs:ignore
353 - $settings[ Enum::USER_HASH ] = $user_hash;
354 - $settings[ Constant::SITE_ID_KEY ] = $response_body->site_id;
355 - if ( ! empty( $intercom_jwt ) ) {
356 - $settings[ Enum::INTERCOM_JWT ] = $intercom_jwt;
357 - }
287 + if ( $is_ajax ) {
288 + $settings[ Enum::IS_SUBSCRIBE ] = $is_subscribe;
289 + $settings[ Enum::EMAIL_SUPPORT ] = $email;
290 + $settings[ Enum::SUPPORT_ENABLED ] = true;
291 + } else {
292 + $email = $settings[ Enum::EMAIL_SUPPORT ];
358 293 }
359 - }
294 + $support_enable_time = $settings[ Enum::SUPPORT_ENABLED_TIME ] ?? '';
295 + $current_date = date( 'm/d/Y', time() ); // phpcs:ignore
296 + if ( ! $is_ajax || empty( $support_enable_time ) || $current_date > $support_enable_time ) {
297 + global $wp_version;
298 + $jwt_data = array(
299 + 'email' => $email,
300 + 'installed_version' => LASSO_LITE_VERSION,
301 + 'datetime' => gmdate( 'Y-m-d H:i:s' ),
302 + 'site_id' => Helper::get_option( Constant::SITE_ID_KEY ),
303 + 'install_url' => site_url(),
304 + 'wordpress_version' => $wp_version,
305 + 'php_version' => phpversion(),
306 + 'mysql_version' => Model::get_wpdb()->db_version(),
307 + 'is_classic_editor' => Helper::is_classic_editor_plugin_active() ? 1 : 0,
308 + );
360 309
361 - self::set_settings( $settings );
362 - if ( $is_ajax ) {
363 - $response_data = array(
364 - 'success' => true,
365 - );
366 -
367 - // Provide Intercom bootstrap payload on AJAX success so frontend can init Intercom immediately
368 - if ( ! empty( $settings[ Enum::INTERCOM_JWT ] ) ) {
369 - $email_support = $settings[ Enum::EMAIL_SUPPORT ] ?? $email;
370 - $email_support_norm = strtolower( trim( $email_support ) );
371 -
372 - $intercom_user_id = Helper::get_intercom_user_id( $email_support_norm, $settings[ Enum::INTERCOM_JWT ] );
373 -
374 - $user = get_user_by( 'email', $email_support_norm );
375 - $user_name = isset( $user->display_name ) ? $user->display_name : get_bloginfo( 'name' );
376 - $classic_editor = Helper::is_classic_editor() ? 1 : 0;
377 - $lasso_lite_user = 1;
378 - if ( Helper::is_lasso_pro_plugin_active() ) {
379 - $lasso_lite_user = 0;
310 + $jwt = JWT::encode( $jwt_data, Constant::JWT_SECRET_KEY, 'HS256' );
311 + $data['data'] = $jwt;
312 + $response = Helper::send_request( 'post', Constant::LASSO_LINK . 'lasso-lite/enable-support', $data );
313 + $is_succeed = boolval( $response['response']->succeed );
314 + if ( $is_succeed ) {
315 + $user_hash = $response['response']->user_hash;
316 + $settings[ Enum::SUPPORT_ENABLED_TIME ] = date( 'm/d/Y', time() ); // phpcs:ignore
317 + $settings[ Enum::USER_HASH ] = $user_hash;
380 318 }
319 + }
381 320
382 - $response_data['intercom'] = array(
383 - 'app_id' => Constant::LASSO_INTERCOM_APP_ID,
384 - 'name' => $user_name,
385 - 'user_id' => $intercom_user_id,
386 - 'email' => $email_support_norm,
387 - 'lasso_version' => (int) LASSO_LITE_VERSION,
388 - 'classic_editor' => $classic_editor,
389 - 'wp_admin_url' => admin_url(),
390 - 'lasso_lite_user' => $lasso_lite_user,
391 - 'intercom_user_jwt' => $settings[ Enum::INTERCOM_JWT ],
392 - 'site_id' => $settings[ Constant::SITE_ID_KEY ],
321 + self::set_settings( $settings );
322 + if ( $is_ajax ) {
323 + wp_send_json_success(
324 + array(
325 + 'success' => true,
326 + )
393 327 );
394 328 }
395 -
396 - wp_send_json_success(
397 - $response_data
398 - );
399 329 }
400 330 }
401 331
402 332 /**
@@ -423,9 +353,9 @@
423 353 *
424 354 * @return array|false
425 355 */
426 356 public static function get_import_sources() {
427 - $plugin_list = (array) self::$import_sources;
357 + $plugin_list = self::$import_sources;
428 358
429 359 $result = array();
430 360 $plugin_path_abs = dirname( SIMPLE_URLS_DIR );
431 361
@@ -463,38 +393,6 @@
463 393 $plugin_name = $plugin_data['Name'];
464 394 }
465 395
466 396 return $plugin_name;
467 - }
468 -
469 - /**
470 - * Get report url by tab
471 - */
472 - public function get_dashboard_page() {
473 - $dashboard_url = add_query_arg(
474 - array(
475 - 'post_type' => Constant::LASSO_POST_TYPE,
476 - 'page' => $this->dashboard_page,
477 - ),
478 - admin_url( 'edit.php' )
479 - );
480 -
481 - return $dashboard_url;
482 - }
483 -
484 - /**
485 - * Get report url by tab
486 - *
487 - * @param string $page_slug Page slug.
488 - */
489 - public static function get_lasso_page_url( $page_slug ) {
490 - $dashboard_url = add_query_arg(
491 - array(
492 - 'post_type' => Constant::LASSO_POST_TYPE,
493 - 'page' => $page_slug,
494 - ),
495 - admin_url( 'edit.php' )
496 - );
497 -
498 - return $dashboard_url;
499 397 }
500 398 }