PluginProbe ʕ •ᴥ•ʔ
Weight Based Shipping Table Rate for WooCommerce – Flexible Shipping / 2.1
Weight Based Shipping Table Rate for WooCommerce – Flexible Shipping v2.1
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.php
flexible-shipping / classes Last commit date
manifest 8 years ago settings 8 years ago shipment 8 years ago views 8 years ago wpdesk 8 years ago admin-notices.php 8 years ago bulk-actions.php 8 years ago flexible-shipping-export.php 8 years ago flexible-shipping-factory.php 8 years ago flexible-shipping-plugin.php 8 years ago multicurrency.php 8 years ago multilingual.php 8 years ago order-add-shipping.php 8 years ago shipping-method-info.php 8 years ago shipping-method.php 8 years ago tracker.php 8 years ago
tracker.php
252 lines
1 <?php
2
3 if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
4
5 if ( ! class_exists( 'WPDesk_Flexible_Shipping_Tracker' ) ) {
6 class WPDesk_Flexible_Shipping_Tracker {
7
8 public static $script_version = '11';
9
10 public function __construct() {
11 $this->hooks();
12 }
13
14 public function hooks() {
15 add_filter( 'wpdesk_tracker_data', array( $this, 'wpdesk_tracker_data_flexible_shipping' ), 11 );
16 add_filter( 'wpdesk_tracker_notice_screens', array( $this, 'wpdesk_tracker_notice_screens' ) );
17 add_filter( 'wpdesk_track_plugin_deactivation', array( $this, 'wpdesk_track_plugin_deactivation' ) );
18
19 add_filter( 'plugin_action_links_flexible-shipping/flexible-shipping.php', array( $this, 'plugin_action_links' ) );
20 add_action( 'activated_plugin', array( $this, 'activated_plugin' ), 10, 2 );
21 }
22
23 public function wpdesk_track_plugin_deactivation( $plugins ) {
24 $plugins['flexible-shipping/flexible-shipping.php'] = 'flexible-shipping/flexible-shipping.php';
25 return $plugins;
26 }
27
28 public function wpdesk_tracker_data_flexible_shipping( $data ) {
29 $all_shipping_methods = flexible_shipping_get_all_shipping_methods();
30
31 $flexible_shipping = $all_shipping_methods['flexible_shipping'];
32
33 $flexible_shipping_rates = $flexible_shipping->get_all_rates();
34 $data['flexible_shipping'] = array();
35 $data['flexible_shipping']['total_shipping_methods'] = 0;
36 $data['flexible_shipping']['avg_rules'] = 0;
37 $data['flexible_shipping']['max_rules'] = 0;
38 $data['flexible_shipping']['integrations'] = array();
39 $data['flexible_shipping']['free_shipping_requires'] = array();
40 $data['flexible_shipping']['calculation_methods'] = array();
41 $data['flexible_shipping']['based_on'] = array();
42 $data['flexible_shipping']['shipping_class_option'] = array();
43 $data['flexible_shipping']['method_description_count'] = 0;
44 $data['flexible_shipping']['free_shipping_label_count'] = 0;
45 $data['flexible_shipping']['max_cost_count'] = 0;
46 $data['flexible_shipping']['visibility_count'] = 0;
47 $data['flexible_shipping']['default_count'] = 0;
48
49 $data['flexible_shipping']['additional_cost_count'] = 0;
50
51 $data['flexible_shipping']['min_count'] = 0;
52 $data['flexible_shipping']['max_count'] = 0;
53
54 $data['flexible_shipping']['cost_per_order_count'] = 0;
55 $data['flexible_shipping']['stop_count'] = 0;
56 $data['flexible_shipping']['cancel_count'] = 0;
57 foreach ( $flexible_shipping_rates as $flexible_shipping_rate ) {
58
59 $data['flexible_shipping']['total_shipping_methods']++;
60
61 $data['flexible_shipping']['avg_rules'] += count( $flexible_shipping_rate['method_rules'] );
62
63 if ( count( $flexible_shipping_rate['method_rules'] ) > $data['flexible_shipping']['max_rules'] ) {
64 $data['flexible_shipping']['max_rules'] = count( $flexible_shipping_rate['method_rules'] );
65 }
66
67 if ( empty( $flexible_shipping_rate['method_integration'] ) ) {
68 $flexible_shipping_rate['method_integration'] = 'none';
69 }
70 if ( empty( $data['flexible_shipping']['integrations'][$flexible_shipping_rate['method_integration']] ) ) {
71 $data['flexible_shipping']['integrations'][$flexible_shipping_rate['method_integration']] = 0;
72 }
73 $data['flexible_shipping']['integrations'][$flexible_shipping_rate['method_integration']]++;
74
75 if ( !empty( $flexible_shipping_rate['method_free_shipping_requires'] ) ) {
76 if ( empty( $data['flexible_shipping']['free_shipping_requires'][ $flexible_shipping_rate['method_free_shipping_requires'] ] ) ) {
77 $data['flexible_shipping']['free_shipping_requires'][ $flexible_shipping_rate['method_free_shipping_requires'] ] = 0;
78 }
79 $data['flexible_shipping']['free_shipping_requires'][ $flexible_shipping_rate['method_free_shipping_requires'] ] ++;
80 }
81
82 if ( empty( $data['flexible_shipping']['calculation_methods'][$flexible_shipping_rate['method_calculation_method']] ) ) {
83 $data['flexible_shipping']['calculation_methods'][$flexible_shipping_rate['method_calculation_method']] = 0;
84 }
85 $data['flexible_shipping']['calculation_methods'][$flexible_shipping_rate['method_calculation_method']]++;
86
87 if ( !empty( $flexible_shipping_rate['method_description'] ) ) {
88 $data['flexible_shipping']['method_description_count']++;
89 }
90
91 if ( !empty( $flexible_shipping_rate['method_free_shipping_label'] ) ) {
92 $data['flexible_shipping']['free_shipping_label_count']++;
93 }
94
95 if ( !empty( $flexible_shipping_rate['method_max_cost'] ) ) {
96 $data['flexible_shipping']['max_cost_count']++;
97 }
98
99 if ( !empty( $flexible_shipping_rate['method_visibility'] ) && $flexible_shipping_rate['method_visibility'] != 'no' ) {
100 $data['flexible_shipping']['visibility_count']++;
101 }
102
103 if ( !empty( $flexible_shipping_rate['method_default'] ) && $flexible_shipping_rate['method_default'] != 'no' ) {
104 $data['flexible_shipping']['default_count']++;
105 }
106
107 foreach ( $flexible_shipping_rate['method_rules'] as $method_rule ) {
108 if ( empty( $data['flexible_shipping']['based_on'][$method_rule['based_on']] ) ) {
109 $data['flexible_shipping']['based_on'][$method_rule['based_on']] = 0;
110 }
111 $data['flexible_shipping']['based_on'][$method_rule['based_on']]++;
112
113 if ( !empty( $method_rule['shipping_class'] ) ) {
114 $shipping_class = $method_rule['shipping_class'];
115 if ( !in_array( $shipping_class, array( 'all', 'any', 'none' ) ) ) {
116 $shipping_class = 'shipping_class';
117 }
118 if ( empty( $data['flexible_shipping']['shipping_class_option'][$shipping_class] ) ) {
119 $data['flexible_shipping']['shipping_class_option'][$shipping_class] = 0;
120 }
121 $data['flexible_shipping']['shipping_class_option'][$shipping_class]++;
122 }
123
124 if ( !empty( $method_rule['cost_additional'] ) ) {
125 $data['flexible_shipping']['additional_cost_count']++;
126 }
127
128 if ( !empty( $method_rule['min'] ) ) {
129 $data['flexible_shipping']['min_count']++;
130 }
131
132 if ( !empty( $method_rule['max'] ) ) {
133 $data['flexible_shipping']['max_count']++;
134 }
135
136 if ( !empty( $method_rule['cost_per_order'] ) ) {
137 $data['flexible_shipping']['cost_per_order_count']++;
138 }
139
140 if ( !empty( $method_rule['stop'] ) ) {
141 $data['flexible_shipping']['stop_count']++;
142 }
143
144 if ( !empty( $method_rule['cancel'] ) ) {
145 $data['flexible_shipping']['cancel_count']++;
146 }
147
148 }
149
150 }
151 if ( $data['flexible_shipping']['total_shipping_methods'] != 0 ) {
152 $data['flexible_shipping']['avg_rules'] = $data['flexible_shipping']['avg_rules'] / $data['flexible_shipping']['total_shipping_methods'];
153 }
154 return $data;
155 }
156
157 public function wpdesk_tracker_notice_screens( $screens ) {
158 $current_screen = get_current_screen();
159 if ( $current_screen->id == 'woocommerce_page_wc-settings' ) {
160 if ( isset( $_GET['tab'] ) && $_GET['tab'] == 'shipping' ) {
161 $screens[] = $current_screen->id;
162 }
163 }
164 return $screens;
165 }
166
167 public function plugin_action_links( $links ) {
168 if ( !wpdesk_tracker_enabled() || apply_filters( 'wpdesk_tracker_do_not_ask', false ) ) {
169 return $links;
170 }
171 $options = get_option('wpdesk_helper_options', array() );
172 if ( !is_array( $options ) ) {
173 $options = array();
174 }
175 if ( empty( $options['wpdesk_tracker_agree'] ) ) {
176 $options['wpdesk_tracker_agree'] = '0';
177 }
178 $plugin_links = array();
179 if ( $options['wpdesk_tracker_agree'] == '0' ) {
180 $opt_in_link = admin_url( 'admin.php?page=wpdesk_tracker&plugin=flexible-shipping/flexible-shipping.php' );
181 $plugin_links[] = '<a href="' . $opt_in_link . '">' . __( 'Opt-in', 'flexible-shipping' ) . '</a>';
182 }
183 else {
184 $opt_in_link = admin_url( 'plugins.php?wpdesk_tracker_opt_out=1&plugin=flexible-shipping/flexible-shipping.php' );
185 $plugin_links[] = '<a href="' . $opt_in_link . '">' . __( 'Opt-out', 'flexible-shipping' ) . '</a>';
186 }
187 return array_merge( $plugin_links, $links );
188 }
189
190
191 public function activated_plugin( $plugin, $network_wide ) {
192 if ( $network_wide ) {
193 return;
194 }
195 if ( defined( 'WP_CLI' ) && WP_CLI ) {
196 return;
197 }
198 if ( !wpdesk_tracker_enabled() ) {
199 return;
200 }
201 if ( $plugin == 'flexible-shipping/flexible-shipping.php' ) {
202 $options = get_option('wpdesk_helper_options', array() );
203 if ( empty( $options ) ) {
204 $options = array();
205 }
206 if ( empty( $options['wpdesk_tracker_agree'] ) ) {
207 $options['wpdesk_tracker_agree'] = '0';
208 }
209 $wpdesk_tracker_skip_plugin = get_option( 'wpdesk_tracker_skip_flexible_shipping', '0' );
210 if ( $options['wpdesk_tracker_agree'] == '0' && $wpdesk_tracker_skip_plugin == '0' ) {
211 update_option( 'wpdesk_tracker_notice', '1' );
212 update_option( 'wpdesk_tracker_skip_flexible_shipping', '1' );
213 if ( !apply_filters( 'wpdesk_tracker_do_not_ask', false ) ) {
214 wp_redirect( admin_url( 'admin.php?page=wpdesk_tracker&plugin=flexible-shipping/flexible-shipping.php' ) );
215 exit;
216 }
217 }
218 }
219 }
220
221
222 }
223
224 new WPDesk_Flexible_Shipping_Tracker();
225
226 }
227
228 if ( !function_exists( 'wpdesk_activated_plugin_activation_date' ) ) {
229 function wpdesk_activated_plugin_activation_date( $plugin, $network_wide ) {
230 $option_name = 'plugin_activation_' . $plugin;
231 $activation_date = get_option( $option_name, '' );
232 if ( $activation_date == '' ) {
233 $activation_date = current_time( 'mysql' );
234 update_option( $option_name, $activation_date );
235 }
236 }
237 add_action( 'activated_plugin', 'wpdesk_activated_plugin_activation_date', 10, 2 );
238 }
239
240 if ( !function_exists( 'wpdesk_tracker_enabled' ) ) {
241 function wpdesk_tracker_enabled() {
242 $tracker_enabled = true;
243 if ( !empty( $_SERVER['SERVER_ADDR'] ) && $_SERVER['SERVER_ADDR'] == '127.0.0.1' ) {
244 $tracker_enabled = false;
245 }
246 return apply_filters( 'wpdesk_tracker_enabled', $tracker_enabled );
247 // add_filter( 'wpdesk_tracker_enabled', '__return_true' );
248 // add_filter( 'wpdesk_tracker_do_not_ask', '__return_true' );
249 }
250 }
251
252