PluginProbe ʕ •ᴥ•ʔ
Weight Based Shipping Table Rate for WooCommerce – Flexible Shipping / trunk
Weight Based Shipping Table Rate for WooCommerce – Flexible Shipping vtrunk
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 / TableRate / ShippingMethodsIntegration / Tracker.php
flexible-shipping / src / WPDesk / FS / TableRate / ShippingMethodsIntegration Last commit date
Integration.php 2 weeks ago OrderMetaData.php 2 weeks ago SettingsFields.php 2 weeks ago ShippingRate.php 2 weeks ago Tracker.php 2 weeks ago
Tracker.php
74 lines
1 <?php
2
3 namespace WPDesk\FS\TableRate\ShippingMethodsIntegration;
4
5 use FSVendor\WPDesk\PluginBuilder\Plugin\Hookable;
6
7 /**
8 * Class Tracker
9 * Can add data to tracker.
10 */
11 class Tracker implements Hookable {
12
13 public function hooks(): void {
14 add_action(
15 'wpdesk_tracker_data',
16 [
17 $this,
18 'add_data_to_tracker',
19 ],
20 \WPDesk_Flexible_Shipping_Tracker::TRACKER_DATA_FILTER_PRIORITY + 1
21 );
22 }
23
24 /**
25 * @param array $data
26 *
27 * @return array
28 */
29 public function add_data_to_tracker( $data ) {
30 $shipping_methods = $this->get_shipping_methods();
31 $tracker_data = [];
32 foreach ( $shipping_methods as $shipping_method ) {
33 $tracker_data = $this->add_shipping_method_to_tracker_data( $tracker_data, $shipping_method );
34 }
35 $data['flexible_shipping']['rules_table_other_methods'] = $tracker_data;
36
37 return $data;
38 }
39
40 /**
41 * @return \WC_Shipping_Method[]
42 */
43 private function get_shipping_methods(): array {
44 $shipping_methods = [];
45 $shipping_zones = [ new \WC_Shipping_Zone( 0 ) ];
46 foreach ( \WC_Shipping_Zones::get_zones() as $zone ) {
47 $shipping_zones[] = new \WC_Shipping_Zone( $zone['zone_id'] );
48 }
49 foreach ( $shipping_zones as $zone ) {
50 $zone_shipping_methods = $zone->get_shipping_methods( true, 'admin' );
51 foreach ( $zone_shipping_methods as $zone_shipping_method ) {
52 if ( $zone_shipping_method instanceof \WC_Shipping_Method ) {
53 $shipping_methods[] = $zone_shipping_method;
54 }
55 }
56 }
57
58 return $shipping_methods;
59 }
60
61 private function add_shipping_method_to_tracker_data( array $tracker_data, \WC_Shipping_Method $shipping_method ): array {
62 if ( $shipping_method->get_option( SettingsFields::FS_CALCULATION_ENABLED, 'no' ) === 'no' ) {
63 return $tracker_data;
64 }
65 if ( empty( $tracker_data[ $shipping_method->id ] ) ) {
66 $tracker_data[ $shipping_method->id ] = 1;
67 } else {
68 ++$tracker_data[ $shipping_method->id ];
69 }
70
71 return $tracker_data;
72 }
73 }
74