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.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 / Rates / FlexibleShippingRates.php
flexible-shipping / src / WPDesk / FS / TableRate / Rates Last commit date
FlexibleShippingRates.php 1 month ago
FlexibleShippingRates.php
105 lines
1 <?php
2 /**
3 * Class FlexibleShippingRates
4 *
5 * @package WPDesk\FS\TableRate\Rates
6 */
7
8 namespace WPDesk\FS\TableRate\Rates;
9
10 use WC_Shipping_Zone;
11 use WC_Shipping_Zones;
12 use WPDesk\FS\TableRate\ShippingMethodSingle;
13 use WPDesk_Flexible_Shipping;
14
15 /**
16 * Can get all Flexible Shipping rates.
17 */
18 class FlexibleShippingRates {
19
20 /**
21 * @var array
22 */
23 private static $flexible_shipping_rates;
24
25 /**
26 * @return array
27 */
28 public static function get_flexible_shipping_rates() {
29 if ( null === self::$flexible_shipping_rates ) {
30 self::$flexible_shipping_rates = self::get_flexible_shipping_rates_from_configuration();
31 }
32
33 return self::$flexible_shipping_rates;
34 }
35
36 /**
37 * @return array
38 */
39 private static function get_flexible_shipping_rates_from_configuration() {
40 $rates = [];
41 foreach ( self::get_shipping_zones() as $zone ) {
42 foreach ( $zone['shipping_methods'] as $instance_id => $woo_shipping_method ) {
43 if ( WPDesk_Flexible_Shipping::METHOD_ID === $woo_shipping_method->id ) {
44 $rates = self::append_flexible_shipping_group_rates( $rates, $woo_shipping_method );
45 }
46 if ( ShippingMethodSingle::SHIPPING_METHOD_ID === $woo_shipping_method->id ) {
47 $rates = self::append_flexible_shipping_single_rate( $rates, $woo_shipping_method );
48 }
49 }
50 }
51
52 return $rates;
53 }
54
55 /**
56 * @return WC_Shipping_Zone[]
57 */
58 private static function get_shipping_zones() {
59 if ( WC()->countries === null ) {
60 return [];
61 }
62 $zones = WC_Shipping_Zones::get_zones();
63 $zone0 = WC_Shipping_Zones::get_zone( 0 );
64 $zones[0] = $zone0->get_data();
65 $zones[0]['formatted_zone_location'] = $zone0->get_formatted_location();
66 $zones[0]['shipping_methods'] = $zone0->get_shipping_methods();
67
68 return $zones;
69 }
70
71 /**
72 * @param array $rates .
73 * @param WPDesk_Flexible_Shipping $woo_shipping_method .
74 *
75 * @return array
76 */
77 private static function append_flexible_shipping_group_rates( array $rates, WPDesk_Flexible_Shipping $woo_shipping_method ) {
78 $shipping_methods = $woo_shipping_method->get_shipping_methods();
79 foreach ( $shipping_methods as $shipping_method ) {
80 $id = $woo_shipping_method->prepare_rate_id( $shipping_method );
81 $shipping_method['instance_id'] = $woo_shipping_method->instance_id;
82 $rates[ $id ] = $shipping_method;
83 $rates[ $id ]['method_id'] = WPDesk_Flexible_Shipping::METHOD_ID;
84 }
85
86 return $rates;
87 }
88
89 /**
90 * @param array $rates .
91 * @param ShippingMethodSingle $woo_shipping_method .
92 *
93 * @return array
94 */
95 private static function append_flexible_shipping_single_rate( array $rates, ShippingMethodSingle $woo_shipping_method ) {
96 $shipping_method = $woo_shipping_method->instance_settings;
97 $shipping_method['instance_id'] = $woo_shipping_method->instance_id;
98 $rates[ $woo_shipping_method->get_rate_id() ] = $shipping_method;
99 $rates[ $woo_shipping_method->get_rate_id() ]['method_id'] = ShippingMethodSingle::SHIPPING_METHOD_ID;
100 $rates[ $woo_shipping_method->get_rate_id() ]['method_enabled'] = $woo_shipping_method->enabled;
101
102 return $rates;
103 }
104 }
105