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.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 3 days ago OrderMetaData.php 3 days ago SettingsFields.php 3 days ago ShippingRate.php 3 days ago Tracker.php 3 days 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