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.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 / Rule / Condition / Weight.php
flexible-shipping / src / WPDesk / FS / TableRate / Rule / Condition Last commit date
Pro 2 weeks ago ConditionsFactory.php 2 weeks ago Price.php 2 weeks ago Weight.php 2 weeks ago
Weight.php
170 lines
1 <?php
2 /**
3 * Class Weight
4 *
5 * @package WPDesk\FS\TableRate\Rule\Condition
6 */
7
8 namespace WPDesk\FS\TableRate\Rule\Condition;
9
10 use FSVendor\WPDesk\Forms\Field;
11 use Psr\Log\LoggerInterface;
12 use WPDesk\FS\TableRate\Rule\ShippingContents\ShippingContents;
13
14 /**
15 * Weight condition.
16 */
17 if ( defined( 'FLEXIBLE_SHIPPING_PSR_NOT_PREFIXED' ) && FLEXIBLE_SHIPPING_PSR_NOT_PREFIXED ) {
18 class Weight extends AbstractCondition {
19
20 const MIN = 'min';
21 const MAX = 'max';
22
23 const CONDITION_ID = 'weight';
24
25 /**
26 * Weight constructor.
27 *
28 * @param int $priority .
29 */
30 public function __construct( $priority = 10 ) {
31 $this->condition_id = self::CONDITION_ID;
32 $this->name = __( 'Weight', 'flexible-shipping' );
33 $this->description = __( 'Shipping cost based on the weight of the cart or package', 'flexible-shipping' );
34 $this->group = __( 'Product', 'flexible-shipping' );
35 $this->priority = $priority;
36 }
37
38 /**
39 * @param array $condition_settings .
40 * @param ShippingContents $contents .
41 * @param LoggerInterface $logger .
42 *
43 * @return bool
44 */
45 public function is_condition_matched( array $condition_settings, ShippingContents $contents, LoggerInterface $logger ) {
46 $min = (float) ( isset( $condition_settings[ self::MIN ] ) && 0 !== strlen( $condition_settings[ self::MIN ] ) ? $condition_settings[ self::MIN ] : 0 );
47 $max = (float) ( isset( $condition_settings[ self::MAX ] ) && 0 !== strlen( $condition_settings[ self::MAX ] ) ? $condition_settings[ self::MAX ] : INF );
48
49 $contents_weight =
50 /**
51 * Can modify contents weight passed to Weight condition.
52 *
53 * @param float $contents_weight Contents weight.
54 *
55 * @since 4.1.1
56 */
57 apply_filters( 'flexible-shipping/condition/contents_weight', $contents->get_contents_weight() );
58
59 $contents_weight = (float) $contents_weight;
60
61 $condition_matched = $contents_weight >= $min && $contents_weight <= $max;
62
63 $logger->debug( $this->format_for_log( $condition_settings, $condition_matched, $contents_weight ) );
64
65 return $condition_matched;
66 }
67
68 /**
69 * @return Field[]
70 */
71 public function get_fields() {
72 return [
73 ( new Field\InputNumberField() )
74 ->set_name( self::MIN )
75 ->add_class( 'wc_input_decimal' )
76 ->add_class( 'hs-beacon-search' )
77 ->add_class( 'parameter_min' )
78 ->add_data( 'beacon_search', __( 'weight is from', 'flexible-shipping' ) )
79 ->set_placeholder( __( 'is from', 'flexible-shipping' ) )
80 ->set_label( __( 'is from', 'flexible-shipping' ) ),
81 ( new Field\InputNumberField() )
82 ->set_name( self::MAX )
83 ->add_class( 'wc_input_decimal' )
84 ->add_class( 'hs-beacon-search' )
85 ->add_class( 'parameter_max' )
86 ->add_data( 'beacon_search', __( 'weight to', 'flexible-shipping' ) )
87 ->set_placeholder( __( 'to', 'flexible-shipping' ) )
88 ->set_label( __( 'to', 'flexible-shipping' ) )
89 ->add_data( 'suffix', get_option( 'woocommerce_weight_unit' ) ),
90 ];
91 }
92 }
93 } else {
94 class Weight extends AbstractCondition {
95
96 const MIN = 'min';
97 const MAX = 'max';
98
99 const CONDITION_ID = 'weight';
100
101 /**
102 * Weight constructor.
103 *
104 * @param int $priority .
105 */
106 public function __construct( $priority = 10 ) {
107 $this->condition_id = self::CONDITION_ID;
108 $this->name = __( 'Weight', 'flexible-shipping' );
109 $this->description = __( 'Shipping cost based on the weight of the cart or package', 'flexible-shipping' );
110 $this->group = __( 'Product', 'flexible-shipping' );
111 $this->priority = $priority;
112 }
113
114 /**
115 * @param array $condition_settings .
116 * @param ShippingContents $contents .
117 * @param LoggerInterface $logger .
118 *
119 * @return bool
120 */
121 public function is_condition_matched( array $condition_settings, ShippingContents $contents, $logger ) {
122 $min = (float) ( isset( $condition_settings[ self::MIN ] ) && 0 !== strlen( $condition_settings[ self::MIN ] ) ? $condition_settings[ self::MIN ] : 0 );
123 $max = (float) ( isset( $condition_settings[ self::MAX ] ) && 0 !== strlen( $condition_settings[ self::MAX ] ) ? $condition_settings[ self::MAX ] : INF );
124
125 $contents_weight =
126 /**
127 * Can modify contents weight passed to Weight condition.
128 *
129 * @param float $contents_weight Contents weight.
130 *
131 * @since 4.1.1
132 */
133 apply_filters( 'flexible-shipping/condition/contents_weight', $contents->get_contents_weight() );
134
135 $contents_weight = (float) $contents_weight;
136
137 $condition_matched = $contents_weight >= $min && $contents_weight <= $max;
138
139 $logger->debug( $this->format_for_log( $condition_settings, $condition_matched, $contents_weight ) );
140
141 return $condition_matched;
142 }
143
144 /**
145 * @return Field[]
146 */
147 public function get_fields() {
148 return [
149 ( new Field\InputNumberField() )
150 ->set_name( self::MIN )
151 ->add_class( 'wc_input_decimal' )
152 ->add_class( 'hs-beacon-search' )
153 ->add_class( 'parameter_min' )
154 ->add_data( 'beacon_search', __( 'weight is from', 'flexible-shipping' ) )
155 ->set_placeholder( __( 'is from', 'flexible-shipping' ) )
156 ->set_label( __( 'is from', 'flexible-shipping' ) ),
157 ( new Field\InputNumberField() )
158 ->set_name( self::MAX )
159 ->add_class( 'wc_input_decimal' )
160 ->add_class( 'hs-beacon-search' )
161 ->add_class( 'parameter_max' )
162 ->add_data( 'beacon_search', __( 'weight to', 'flexible-shipping' ) )
163 ->set_placeholder( __( 'to', 'flexible-shipping' ) )
164 ->set_label( __( 'to', 'flexible-shipping' ) )
165 ->add_data( 'suffix', get_option( 'woocommerce_weight_unit' ) ),
166 ];
167 }
168 }
169 }
170