PluginProbe ʕ •ᴥ•ʔ
Weight Based Shipping Table Rate for WooCommerce – Flexible Shipping / 6.11.0
Weight Based Shipping Table Rate for WooCommerce – Flexible Shipping v6.11.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 / classes / tracker / class-wpdesk-flexible-shipping-tracker.php
flexible-shipping / classes / tracker Last commit date
class-method-created-tracker-deactivation-data.php 2 weeks ago class-wpdesk-flexible-shipping-tracker.php 2 weeks ago
class-wpdesk-flexible-shipping-tracker.php
180 lines
1 <?php
2 /**
3 * Tracker.
4 *
5 * @package Flexible Shipping.
6 */
7
8 use FSVendor\WPDesk\PluginBuilder\Plugin\Hookable;
9 use WPDesk\FS\TableRate\ShippingMethodSingle;
10 use WPDesk\FS\TableRate\SingleRuleSettings;
11
12 /**
13 * Handle Tracker actions and filters.
14 */
15 class WPDesk_Flexible_Shipping_Tracker implements Hookable {
16
17 const PLUGIN_ACTION_LINKS_FILTER_NAME = 'plugin_action_links_flexible-shipping/flexible-shipping.php';
18 const FLEXIBLE_SHIPPING_PLUGIN_FILE = 'flexible-shipping/flexible-shipping.php';
19 const FLEXIBLE_SHIPPING_PLUGIN_SLUG = 'flexible-shipping';
20 const FLEXIBLE_SHIPPING_PLUGIN_TITLE = 'Flexible Shipping';
21 const TRACKER_DATA_FILTER_PRIORITY = 11;
22
23 /**
24 * Is plugin flexible shipping in data.
25 *
26 * @param array $data Data.
27 * @return bool
28 */
29 public static function is_plugin_flexible_shipping_in_data( $data ) {
30 return is_array( $data ) && isset( $data['plugin'] ) && self::FLEXIBLE_SHIPPING_PLUGIN_FILE === $data['plugin'];
31 }
32
33 /**
34 * Hooks.
35 */
36 public function hooks() {
37 add_filter( 'wpdesk_tracker_data', [ $this, 'wpdesk_tracker_data_flexible_shipping' ], self::TRACKER_DATA_FILTER_PRIORITY );
38 }
39
40 /**
41 * Append data.
42 *
43 * @param array $data Data.
44 *
45 * @return array
46 */
47 public function wpdesk_tracker_data_flexible_shipping( $data ) {
48 $all_shipping_methods = flexible_shipping_get_all_shipping_methods();
49
50 $flexible_shipping = $all_shipping_methods['flexible_shipping'];
51
52 $flexible_shipping_rates = $flexible_shipping->get_all_rates();
53 $data['flexible_shipping'] = [];
54 $data['flexible_shipping']['total_shipping_methods'] = 0;
55 $data['flexible_shipping']['group_shipping_methods'] = 0;
56 $data['flexible_shipping']['single_shipping_methods'] = 0;
57 $data['flexible_shipping']['avg_rules'] = 0;
58 $data['flexible_shipping']['max_rules'] = 0;
59 $data['flexible_shipping']['integrations'] = [];
60 $data['flexible_shipping']['free_shipping_requires'] = [];
61 $data['flexible_shipping']['calculation_methods'] = [];
62 $data['flexible_shipping']['based_on'] = [];
63 $data['flexible_shipping']['shipping_class_option'] = [];
64 $data['flexible_shipping']['method_description_count'] = 0;
65 $data['flexible_shipping']['free_shipping_label_count'] = 0;
66 $data['flexible_shipping']['free_shipping_cart_notice_count'] = 0;
67 $data['flexible_shipping']['max_cost_count'] = 0;
68 $data['flexible_shipping']['visibility_count'] = 0;
69 $data['flexible_shipping']['default_count'] = 0;
70
71 $data['flexible_shipping']['additional_cost_count'] = 0;
72
73 $data['flexible_shipping']['min_count'] = 0;
74 $data['flexible_shipping']['max_count'] = 0;
75
76 $data['flexible_shipping']['cost_per_order_count'] = 0;
77 $data['flexible_shipping']['stop_count'] = 0;
78 $data['flexible_shipping']['cancel_count'] = 0;
79
80 foreach ( $flexible_shipping_rates as $rate_id => $flexible_shipping_rate ) {
81
82 if ( ! isset( $flexible_shipping_rate['method_rules'] ) ) {
83 $flexible_shipping_rate['method_rules'] = [];
84 }
85
86 $data['flexible_shipping']['total_shipping_methods'] ++;
87
88 if ( ShippingMethodSingle::SHIPPING_METHOD_ID === $flexible_shipping_rate['method_id'] ) {
89 $data['flexible_shipping']['single_shipping_methods']++;
90 }
91
92 if ( WPDesk_Flexible_Shipping::METHOD_ID === $flexible_shipping_rate['method_id'] ) {
93 $data['flexible_shipping']['group_shipping_methods']++;
94 }
95
96 $data['flexible_shipping']['avg_rules'] += count( $flexible_shipping_rate['method_rules'] );
97
98 if ( count( $flexible_shipping_rate['method_rules'] ) > $data['flexible_shipping']['max_rules'] ) {
99 $data['flexible_shipping']['max_rules'] = count( $flexible_shipping_rate['method_rules'] );
100 }
101
102 if ( empty( $flexible_shipping_rate['method_integration'] ) ) {
103 $flexible_shipping_rate['method_integration'] = 'none';
104 }
105 if ( empty( $data['flexible_shipping']['integrations'][ $flexible_shipping_rate['method_integration'] ] ) ) {
106 $data['flexible_shipping']['integrations'][ $flexible_shipping_rate['method_integration'] ] = 0;
107 }
108 $data['flexible_shipping']['integrations'][ $flexible_shipping_rate['method_integration'] ] ++;
109
110 if ( ! empty( $flexible_shipping_rate['method_free_shipping_requires'] ) ) {
111 if ( empty( $data['flexible_shipping']['free_shipping_requires'][ $flexible_shipping_rate['method_free_shipping_requires'] ] ) ) {
112 $data['flexible_shipping']['free_shipping_requires'][ $flexible_shipping_rate['method_free_shipping_requires'] ] = 0;
113 }
114 $data['flexible_shipping']['free_shipping_requires'][ $flexible_shipping_rate['method_free_shipping_requires'] ] ++;
115 }
116
117 if ( empty( $data['flexible_shipping']['calculation_methods'][ $flexible_shipping_rate['method_calculation_method'] ] ) ) {
118 $data['flexible_shipping']['calculation_methods'][ $flexible_shipping_rate['method_calculation_method'] ] = 0;
119 }
120 $data['flexible_shipping']['calculation_methods'][ $flexible_shipping_rate['method_calculation_method'] ] ++;
121
122 if ( ! empty( $flexible_shipping_rate['method_description'] ) ) {
123 $data['flexible_shipping']['method_description_count'] ++;
124 }
125
126 if ( ! empty( $flexible_shipping_rate['method_free_shipping_label'] ) ) {
127 $data['flexible_shipping']['free_shipping_label_count'] ++;
128 }
129
130 if ( ! empty( $flexible_shipping_rate[ WPDesk_Flexible_Shipping::SETTING_METHOD_FREE_SHIPPING_NOTICE ] )
131 && 'yes' === $flexible_shipping_rate[ WPDesk_Flexible_Shipping::SETTING_METHOD_FREE_SHIPPING_NOTICE ]
132 ) {
133 $data['flexible_shipping']['free_shipping_cart_notice_count'] ++;
134 }
135
136 if ( ! empty( $flexible_shipping_rate['method_max_cost'] ) ) {
137 $data['flexible_shipping']['max_cost_count'] ++;
138 }
139
140 if ( ! empty( $flexible_shipping_rate['method_visibility'] ) && 'no' !== $flexible_shipping_rate['method_visibility'] ) {
141 $data['flexible_shipping']['visibility_count'] ++;
142 }
143
144 if ( ! empty( $flexible_shipping_rate['method_default'] ) && 'no' !== $flexible_shipping_rate['method_default'] ) {
145 $data['flexible_shipping']['default_count'] ++;
146 }
147 $data['flexible_shipping'] = apply_filters( 'flexible-shipping/tracker/method-settings', $data['flexible_shipping'], $flexible_shipping_rate );
148
149 foreach ( $flexible_shipping_rate['method_rules'] as $method_rule ) {
150 $rule_settings = new SingleRuleSettings( $method_rule );
151 $data['flexible_shipping'] = apply_filters( 'flexible-shipping/tracker/method-rule-data', $data['flexible_shipping'], $rule_settings->get_normalized_settings() );
152 }
153 }
154
155 if ( 0 !== (int) $data['flexible_shipping']['total_shipping_methods'] ) {
156 $data['flexible_shipping']['avg_rules'] = (float) $data['flexible_shipping']['avg_rules'] / (float) $data['flexible_shipping']['total_shipping_methods'];
157 }
158
159 return $data;
160 }
161
162 }
163
164 if ( ! function_exists( 'wpdesk_tracker_enabled' ) ) {
165 /**
166 * Disable tracker on localhost.
167 *
168 * @return bool
169 */
170 function wpdesk_tracker_enabled() {
171 $tracker_enabled = true;
172 if ( ! empty( $_SERVER['SERVER_ADDR'] ) && '127.0.0.1' === $_SERVER['SERVER_ADDR'] ) {
173 $tracker_enabled = false;
174 }
175 return apply_filters( 'wpdesk_tracker_enabled', $tracker_enabled );
176 }
177 }
178
179
180