PluginProbe ʕ •ᴥ•ʔ
Weight Based Shipping Table Rate for WooCommerce – Flexible Shipping / 6.11.0
Weight Based Shipping Table Rate for WooCommerce – Flexible Shipping v6.11.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 / Rule / Cost / RuleAdditionalCostFieldsFactory.php
flexible-shipping / src / WPDesk / FS / TableRate / Rule / Cost Last commit date
RuleAdditionalCostFactory.php 1 week ago RuleAdditionalCostFieldsFactory.php 1 week ago RuleCostFieldsFactory.php 1 week ago
RuleAdditionalCostFieldsFactory.php
107 lines
1 <?php
2 /**
3 * Class RuleCostFactory
4 *
5 * @package WPDesk\FS\TableRate\Rule\Cost
6 */
7
8 namespace WPDesk\FS\TableRate\Rule\Cost;
9
10
11
12 use FSVendor\WPDesk\Forms\Field;
13 use FSVendor\WPDesk\Forms\FieldProvider;
14 use FSVendor\WPDesk\Forms\Renderer\JsonNormalizedRenderer;
15
16 /**
17 * Can create additional costs fields.
18 */
19 class RuleAdditionalCostFieldsFactory implements FieldProvider {
20
21 const ADDITIONAL_COST = 'additional_cost';
22 const PER_VALUE = 'per_value';
23 const BASED_ON = 'based_on';
24
25 /**
26 * @var AdditionalCost[]
27 */
28 private $available_additional_costs;
29
30 /**
31 * RuleAdditionalCostFieldsFactory constructor.
32 *
33 * @param AdditionalCost[] $available_additional_costs .
34 */
35 public function __construct( array $available_additional_costs ) {
36 $this->available_additional_costs = $available_additional_costs;
37 }
38
39
40 /**
41 * @return Field[]
42 */
43 public function get_fields() {
44 return apply_filters( 'flexible_shipping_rule_additional_cost_fields', $this->get_built_in_rule_additional_cost_fields() );
45 }
46
47 /**
48 * .
49 *
50 * @return array
51 */
52 public function get_normalized_cost_fields() {
53 $normalized_cost_fields = array();
54 $renderer = new JsonNormalizedRenderer();
55
56 return $renderer->render_fields( $this, array() );
57 }
58
59 /**
60 * @return Field[]
61 */
62 public function get_built_in_rule_additional_cost_fields() {
63 return array(
64 ( new Field\InputNumberField() )
65 ->set_name( self::ADDITIONAL_COST )
66 ->add_class( 'wc_input_decimal' )
67 ->add_class( 'hs-beacon-search' )
68 ->add_class( 'additional-cost-cost' )
69 ->add_data( 'beacon_search', __( 'additional cost', 'flexible-shipping' ) )
70 ->set_placeholder( __( 'additional cost', 'flexible-shipping' ) )
71 ->set_label( __( 'additional cost is', 'flexible-shipping' ) )
72 ->add_data( 'suffix', get_woocommerce_currency_symbol() ),
73 ( new Field\InputNumberField() )
74 ->set_name( self::PER_VALUE )
75 ->add_class( 'wc_input_decimal' )
76 ->add_class( 'hs-beacon-search' )
77 ->add_class( 'additional-cost-per' )
78 ->add_data( 'beacon_search', __( 'additional cost per', 'flexible-shipping' ) )
79 ->set_placeholder( __( 'per', 'flexible-shipping' ) )
80 ->set_label( __( 'per', 'flexible-shipping' ) ),
81 ( new Field\SelectField() )
82 ->set_name( self::BASED_ON )
83 ->set_options( $this->get_based_on_options() )
84 ->add_class( 'wc_input_decimal' )
85 ->add_class( 'hs-beacon-search' )
86 ->add_class( 'additional-cost-based-on' )
87 ->add_data( 'beacon_search', __( 'additional cost per', 'flexible-shipping' ) ),
88 );
89 }
90
91 /**
92 * @return array
93 */
94 private function get_based_on_options() {
95 $options = array();
96 foreach ( $this->available_additional_costs as $additional_cost ) {
97 $options[] = array(
98 'value' => $additional_cost->get_based_on(),
99 'label' => $additional_cost->get_name(),
100 );
101 }
102
103 return $options;
104 }
105
106 }
107