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 / ShippingMethod / Management / ShippingMethodManagement.php
flexible-shipping / src / WPDesk / FS / TableRate / ShippingMethod / Management Last commit date
ShippingMethodManagement.php 4 days ago
ShippingMethodManagement.php
101 lines
1 <?php
2 /**
3 * Class ShippingMethodManagement
4 *
5 * @package WPDesk\FS\TableRate\ShippingMethod\Management
6 */
7
8 namespace WPDesk\FS\TableRate\ShippingMethod\Management;
9
10 use WC_Shipping_Zone;
11 use WC_Shipping_Zones;
12 use wpdb;
13 use WPDesk\FS\TableRate\ShippingMethodSingle;
14
15 /**
16 * @codeCoverageIgnore
17 */
18 class ShippingMethodManagement {
19
20 /**
21 * @var wpdb
22 */
23 private $wpdb;
24
25 /**
26 * @param wpdb $wpdb
27 */
28 public function __construct( wpdb $wpdb ) {
29 $this->wpdb = $wpdb;
30 }
31
32 /**
33 * @param int $instance_id .
34 * @param bool $status .
35 * @param WC_Shipping_Zone $zone .
36 */
37 public function set_shipping_method_status( int $instance_id, bool $status, WC_Shipping_Zone $zone ) {
38 $status = $status ? 1 : 0;
39
40 if ( $this->update_shipping_method_field( $instance_id, 'is_enabled', $status ) ) {
41 $shipping_method = WC_Shipping_Zones::get_shipping_method( $instance_id );
42
43 do_action( 'woocommerce_shipping_zone_method_status_toggled', $shipping_method->instance_id, $shipping_method->id, $zone->get_id(), $status );
44 }
45 }
46
47 /**
48 * @param int $zone_id .
49 * @param int $method_order .
50 * @param int $number_of_shipping_methods .
51 */
52 public function update_shipping_methods_order( int $zone_id, int $method_order, int $number_of_shipping_methods ) {
53 $this->wpdb->query( $this->wpdb->prepare( sprintf( 'UPDATE `%s` SET `method_order` = `method_order`+%%d WHERE `zone_id` = %%d AND `method_order` > %%d', $this->get_table() ), $number_of_shipping_methods, $zone_id, $method_order ) ); // phpcs:ignore
54 }
55
56 /**
57 * @param int $instance_id .
58 *
59 * @return int
60 */
61 public function get_shipping_method_order( int $instance_id ): int {
62 return (int) $this->wpdb->get_var( $this->wpdb->prepare( sprintf( 'SELECT `method_order` FROM `%s` WHERE `instance_id` = %%d ORDER BY `method_order` ASC', $this->get_table() ), $instance_id ) ); // phpcs:ignore
63 }
64
65 /**
66 * @param int $instance_id .
67 *
68 * @return bool|ShippingMethodSingle
69 */
70 public function get_shipping_method( int $instance_id ) {
71 return WC_Shipping_Zones::get_shipping_method( $instance_id );
72 }
73
74 /**
75 * @param int $instance_id .
76 *
77 * @return bool|WC_Shipping_Zone
78 */
79 public function get_shipping_zone( int $instance_id ) {
80 return WC_Shipping_Zones::get_zone_by( 'instance_id', $instance_id );
81 }
82
83 /**
84 * @param int $instance_id .
85 * @param string $key .
86 * @param string $value .
87 *
88 * @return bool|int
89 */
90 public function update_shipping_method_field( int $instance_id, string $key, string $value ) {
91 return $this->wpdb->update( $this->get_table(), [ $key => $value ], [ 'instance_id' => $instance_id ] );
92 }
93
94 /**
95 * @return string
96 */
97 private function get_table(): string {
98 return $this->wpdb->prefix . 'woocommerce_shipping_zone_methods';
99 }
100 }
101