PluginProbe ʕ •ᴥ•ʔ
Weight Based Shipping Table Rate for WooCommerce – Flexible Shipping / trunk
Weight Based Shipping Table Rate for WooCommerce – Flexible Shipping vtrunk
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 / classes / tracker / class-method-created-tracker-deactivation-data.php
flexible-shipping / classes / tracker Last commit date
class-method-created-tracker-deactivation-data.php 6 days ago class-wpdesk-flexible-shipping-tracker.php 6 days ago
class-method-created-tracker-deactivation-data.php
132 lines
1 <?php
2 /**
3 * Class WPDesk_Flexible_Shipping_Method_Created_Tracker_Deactivation_Data
4 *
5 * @package Flexible Shipping.
6 */
7
8 use WPDesk\FS\TableRate\ShippingMethodSingle;
9
10 /**
11 * Class by which we can push created methods data to the deactivation filter
12 */
13 class WPDesk_Flexible_Shipping_Method_Created_Tracker_Deactivation_Data implements \FSVendor\WPDesk\PluginBuilder\Plugin\Hookable {
14
15 const OPTION_FS_METHOD_CREATED_TRACKER = 'fs_method_created_tracker';
16
17 const TRACK_USERS_AFTER_THIS_DATE = '2019-04-11 01:00:00';
18
19 const NO_ACTION_WITH_FS = 0;
20 const FLEXIBLE_SHIPPING_METHOD_ADDED_TO_ZONE = 1;
21 const FLEXIBLE_SHIPPING_METHOD_ADDED_TO_FS = 2;
22 const FLEXIBLE_SHIPPING_SINGLE_ADDED_TO_ZONE = 3;
23 const FLEXIBLE_SHIPPING_FS_INFO_VIEWED = 4;
24
25 /**
26 * Fires hooks
27 */
28 public function hooks() {
29 add_filter( 'wpdesk_tracker_deactivation_data', array( $this, 'append_variant_id_to_data' ) );
30 add_action( 'woocommerce_shipping_zone_method_added', array( $this, 'maybe_update_option_on_zone_method_added' ), 10, 3 );
31 add_filter( 'flexible_shipping_process_admin_options', array( $this, 'maybe_update_option_on_fs_method_saved' ) );
32 add_action( 'admin_footer', array( $this, 'update_option_when_in_fs_info' ) );
33 }
34
35 /**
36 * .
37 */
38 public function update_option_when_in_fs_info() {
39 if ( ! $this->is_old_installation() && isset( $_GET['page'] ) && isset( $_GET['tab'] ) && isset( $_GET['section'] )
40 && 'wc-settings' === $_GET['page'] && 'shipping' === $_GET['tab'] && 'flexible_shipping_info' === $_GET['section']
41 ) {
42 $option_value = intval( get_option( self::OPTION_FS_METHOD_CREATED_TRACKER, '0' ) );
43 if ( self::NO_ACTION_WITH_FS === $option_value ) {
44 update_option( self::OPTION_FS_METHOD_CREATED_TRACKER, self::FLEXIBLE_SHIPPING_FS_INFO_VIEWED );
45 }
46 }
47 }
48
49 /**
50 * Maybe update option on FS method saved.
51 *
52 * @param array $shipping_method Shipping method.
53 *
54 * @return array
55 */
56 public function maybe_update_option_on_fs_method_saved( array $shipping_method ) {
57 if ( ! $this->is_old_installation() ) {
58 $option_value = intval( get_option( self::OPTION_FS_METHOD_CREATED_TRACKER, '0' ) );
59 if ( self::FLEXIBLE_SHIPPING_METHOD_ADDED_TO_FS !== $option_value ) {
60 update_option( self::OPTION_FS_METHOD_CREATED_TRACKER, self::FLEXIBLE_SHIPPING_METHOD_ADDED_TO_FS );
61 }
62 }
63 return $shipping_method;
64 }
65
66 /**
67 * Maybe update option on zone method added action.
68 *
69 * @param int $instance_id Instance ID.
70 * @param string $type Type.
71 * @param int $zone_id Zone ID.
72 */
73 public function maybe_update_option_on_zone_method_added( $instance_id, $type, $zone_id ) {
74 if ( WPDesk_Flexible_Shipping::METHOD_ID === $type ) {
75 if ( ! $this->is_old_installation() ) {
76 $option_value = intval( get_option( self::OPTION_FS_METHOD_CREATED_TRACKER, '0' ) );
77 if ( self::NO_ACTION_WITH_FS === $option_value || self::FLEXIBLE_SHIPPING_FS_INFO_VIEWED === $option_value ) {
78 update_option( self::OPTION_FS_METHOD_CREATED_TRACKER, self::FLEXIBLE_SHIPPING_METHOD_ADDED_TO_ZONE );
79 }
80 }
81 }
82 if ( ShippingMethodSingle::SHIPPING_METHOD_ID === $type ) {
83 if ( ! $this->is_old_installation() ) {
84 update_option( self::OPTION_FS_METHOD_CREATED_TRACKER, self::FLEXIBLE_SHIPPING_SINGLE_ADDED_TO_ZONE );
85 }
86 }
87 }
88
89 /**
90 * If this a old user? If so then FS should work like always.
91 *
92 * @return bool
93 */
94 private function is_old_installation() {
95 return strtotime( self::TRACK_USERS_AFTER_THIS_DATE ) > $this->activation_date_according_to_wpdesk_helper();
96 }
97
98 /**
99 * Activation date according to wpdesk helper.
100 *
101 * @return int timestamp
102 */
103 private function activation_date_according_to_wpdesk_helper() {
104 $old_option_name = 'plugin_activation_flexible-shipping/flexible-shipping.php';
105 $option_name = 'activation_plugin_flexible-shipping/flexible-shipping.php';
106 $activation_date = get_option( $old_option_name, get_option( $option_name, current_time( 'mysql' ) ) );
107
108 if ( ! $activation_date ) {
109 return time();
110 }
111
112 return strtotime( $activation_date );
113 }
114
115 /**
116 * Set fs_method_created option value to data array
117 *
118 * @param array $data Data.
119 *
120 * @return array
121 */
122 public function append_variant_id_to_data( array $data ) {
123 if ( ! $this->is_old_installation() ) {
124 if ( WPDesk_Flexible_Shipping_Tracker::is_plugin_flexible_shipping_in_data( $data ) ) {
125 $data['fs_method_created'] = intval( get_option( self::OPTION_FS_METHOD_CREATED_TRACKER, '0' ) );
126 }
127 }
128 return $data;
129 }
130
131 }
132