PluginProbe ʕ •ᴥ•ʔ
Weight Based Shipping Table Rate for WooCommerce – Flexible Shipping / 6.10.0
Weight Based Shipping Table Rate for WooCommerce – Flexible Shipping v6.10.0
6.12.1 6.12.0 6.11.0 6.10.0 6.9.1 6.9.0 6.8.1 6.8.0 6.7.4 6.7.3 6.7.2 6.7.0 4.21.7 4.22.0 4.22.1 4.23.0 4.23.1 4.23.2 4.23.3 4.24.0 4.24.1 4.24.10 4.24.11 4.24.12 4.24.13 4.24.14 4.24.15 4.24.16 4.24.17 4.24.18 4.24.19 4.24.2 4.24.4 4.24.6 4.24.7 4.24.8 4.24.9 4.25.0 4.25.1 4.25.2 4.25.4 4.25.5 4.25.6 4.25.7 4.25.8 4.3.0 4.3.1 4.4.0 4.4.1 4.5.0 4.5.1 4.6.0 4.6.1 4.7.0 4.7.1 4.7.2 4.8.0 4.8.1 4.8.3 4.8.4 4.8.5 4.9.0 5.0.0 5.0.1 5.0.2 5.0.3 5.0.4 5.0.5 5.0.6 5.0.7 5.0.8 5.0.9 5.1.0 5.1.1 5.1.2 5.1.3 5.2.0 5.3.0 5.3.1 5.3.3 5.3.4 5.3.5 6.0.0 6.1.0 6.1.1 6.1.2 6.2.0 6.2.1 6.2.2 6.2.3 6.2.4 6.3.0 trunk 6.4.0 1.4 6.4.1 1.4.1 6.4.2 1.5 6.4.3 1.6 6.4.5 1.6.1 6.5.0 1.6.2 6.5.1 1.7 6.5.2 1.8 6.5.3 1.9 6.5.4 1.9.1 6.5.5 1.9.10 6.5.6 1.9.11 6.5.7 1.9.12 6.5.8 1.9.2 6.6.0 1.9.3 6.6.1 1.9.4 6.6.2 1.9.5 1.9.6 1.9.7 1.9.8 1.9.9 2.0 2.0.1 2.1 2.1.1 2.1.10 2.1.2 2.1.3 2.1.4 2.1.5 2.1.6 2.1.7 2.1.8 2.1.9 3.0.6 3.0.7 3.1 3.1.1 3.1.10 3.1.11 3.1.12 3.1.2 3.1.3 3.1.4 3.1.5 3.1.6 3.1.7 3.1.8 3.1.9 3.10.0 3.11.0 3.11.1 3.11.2 3.11.3 3.11.4 3.12.0 3.13.0 3.14.0 3.14.1 3.14.2 3.14.3 3.14.4 3.15.0 3.16.0 3.16.1 3.16.2 3.16.3 3.16.4 3.16.5 3.2.0 3.3.1 3.3.10 3.3.11 3.3.12 3.3.13 3.3.14 3.3.2 3.3.3 3.3.4 3.3.5 3.3.6 3.3.7 3.3.8 3.3.9 3.4.0 3.5.0 3.5.1 3.6.0 3.6.1 3.6.2 3.6.3 3.6.4 3.7.0 3.8.0 3.9.0 3.9.1 3.9.10 3.9.11 3.9.12 3.9.13 3.9.15 3.9.16 3.9.17 3.9.18 3.9.19 3.9.2 3.9.20 3.9.21 3.9.3 3.9.4 3.9.5 3.9.6 3.9.7 3.9.9 4.0.0 4.0.1 4.0.10 4.0.2 4.0.3 4.0.4 4.0.5 4.0.6 4.0.7 4.0.8 4.0.9 4.1.0 4.1.1 4.1.2 4.1.3 4.1.4 4.10.0 4.10.1 4.11.0 4.11.1 4.11.2 4.11.3 4.11.4 4.11.5 4.11.6 4.11.7 4.11.8 4.11.9 4.12.0 4.13.0 4.13.1 4.13.2 4.13.3 4.14.0 4.14.1 4.14.2 4.15.0 4.16.0 4.16.1 4.16.2 4.17.0 4.18.0 4.18.1 4.18.2 4.18.3 4.18.4 4.18.5 4.18.6 4.19.0 4.19.1 4.2.0 4.20.0 4.20.1 4.20.2 4.20.3 4.21.0 4.21.1 4.21.2 4.21.3 4.21.4 4.21.5
flexible-shipping / src / WPDesk / FS / Onboarding / TableRate / OptionAjaxUpdater.php
flexible-shipping / src / WPDesk / FS / Onboarding / TableRate Last commit date
views 1 month ago FinishOption.php 1 month ago Onboarding.php 1 month ago OptionAjaxUpdater.php 1 month ago PopupData.php 1 month ago Tracker.php 1 month ago
OptionAjaxUpdater.php
115 lines
1 <?php
2 /**
3 * Onboarding option AJAX updater.
4 *
5 * @package WPDesk\FS\TableRate\NewRulesTableBanner
6 */
7
8 namespace WPDesk\FS\Onboarding\TableRate;
9
10 use FSVendor\WPDesk\PluginBuilder\Plugin\Hookable;
11
12 /**
13 * Can update option when onboarding is clicked.
14 */
15 class OptionAjaxUpdater implements Hookable {
16 const AJAX_ACTION_CLICK = 'flexible_shipping_onboarding_table_rate_click';
17 const AJAX_ACTION_EVENT = 'flexible_shipping_onboarding_table_rate_event';
18 const AJAX_ACTION_AUTO_SHOP_POPUP = 'flexible_shipping_onboarding_table_rate_auto_show_popup';
19
20 const NONCE_ACTION = 'flexible_shipping_onboarding_table_rate';
21
22 /**
23 * @var FinishOption
24 */
25 private $option;
26
27 /**
28 * OptionAjaxUpdater constructor.
29 *
30 * @param FinishOption $option .
31 */
32 public function __construct( FinishOption $option ) {
33 $this->option = $option;
34 }
35
36 /**
37 * Hooks.
38 */
39 public function hooks() {
40 add_action( 'wp_ajax_' . self::AJAX_ACTION_CLICK, [ $this, 'handle_ajax_action_click' ] );
41 add_action( 'wp_ajax_' . self::AJAX_ACTION_EVENT, [ $this, 'handle_ajax_action_event' ] );
42 add_action( 'wp_ajax_' . self::AJAX_ACTION_AUTO_SHOP_POPUP, [ $this, 'handle_ajax_action_auto_show_popup' ] );
43 }
44
45 /**
46 * Handle AJAX action OK.
47 *
48 * @internal
49 */
50 public function handle_ajax_action_event() {
51 check_ajax_referer( self::NONCE_ACTION );
52 if ( ! current_user_can( 'manage_woocommerce' ) ) {
53 wp_send_json_error();
54 }
55
56 $event = $this->filter_input( INPUT_POST, 'event' );
57 $step = (int) $this->filter_input( INPUT_POST, 'step' );
58
59 if ( $event ) {
60 $this->option->update_option( 'event', sanitize_text_field( $event ) );
61 $this->option->update_option( 'step', $step );
62
63 wp_send_json_success();
64 } else {
65 wp_send_json_error();
66 }
67 }
68
69 /**
70 * Handle AJAX action Click.
71 *
72 * @internal
73 */
74 public function handle_ajax_action_click() {
75 check_ajax_referer( self::NONCE_ACTION );
76 if ( ! current_user_can( 'manage_woocommerce' ) ) {
77 wp_send_json_error();
78 }
79
80 $clicks = (int) $this->option->get_option_value( 'clicks' );
81
82 $this->option->update_option( 'clicks', $clicks + 1 );
83 $this->option->update_option( 'step', 0 );
84
85 wp_send_json_success();
86 }
87
88 /**
89 * Handle AJAX action Click.
90 *
91 * @internal
92 */
93 public function handle_ajax_action_auto_show_popup() {
94 check_ajax_referer( self::NONCE_ACTION );
95 if ( ! current_user_can( 'manage_woocommerce' ) ) {
96 wp_send_json_error();
97 }
98
99 $this->option->update_option( 'auto_show_popup', 1 );
100
101 wp_send_json_success();
102 }
103
104 /**
105 * @param int $type .
106 * @param string $var_name .
107 *
108 * @return mixed
109 * @codeCoverageIgnore
110 */
111 protected function filter_input( int $type, string $var_name ) {
112 return filter_input( $type, $var_name );
113 }
114 }
115