flexible-shipping
/
vendor_prefixed
/
wpdesk
/
wp-wpdesk-fs-table-rate
/
src
/
Settings
/
MethodSettingsFactory.php
flexible-shipping
/
vendor_prefixed
/
wpdesk
/
wp-wpdesk-fs-table-rate
/
src
/
Settings
Last commit date
CartCalculationOptions.php
1 week ago
CheckboxValue.php
1 week ago
IntegrationSettings.php
1 week ago
IntegrationSettingsFactory.php
1 week ago
IntegrationSettingsImplementation.php
1 week ago
MethodSettings.php
1 week ago
MethodSettingsFactory.php
1 week ago
MethodSettingsImplementation.php
1 week ago
MethodSettingsFactory.php
57 lines
| 1 | <?php |
| 2 | |
| 3 | /** |
| 4 | * Method Factory. |
| 5 | * |
| 6 | * @package WPDesk\FS\TableRate\Settings |
| 7 | */ |
| 8 | namespace FSVendor\WPDesk\FS\TableRate\Settings; |
| 9 | |
| 10 | use FSVendor\WPDesk\FS\Helpers\ShippingMethod; |
| 11 | /** |
| 12 | * Can create Method. |
| 13 | */ |
| 14 | class MethodSettingsFactory |
| 15 | { |
| 16 | const FIELD_METHOD_FREE_SHIPPING = 'method_free_shipping'; |
| 17 | /** |
| 18 | * @param array $shipping_method_array |
| 19 | * @param bool $method_default_disable Should disable method_default_setting? |
| 20 | * |
| 21 | * @return MethodSettings |
| 22 | */ |
| 23 | public static function create_from_array($shipping_method_array, $method_default_disable = \true) |
| 24 | { |
| 25 | $shipping_method_array = self::clean_settings($shipping_method_array); |
| 26 | $method_default = isset($shipping_method_array['method_default']) ? $shipping_method_array['method_default'] : 'no'; |
| 27 | $method_default = $method_default_disable ? 'no' : $method_default; |
| 28 | return new MethodSettingsImplementation($shipping_method_array, isset($shipping_method_array['id']) ? $shipping_method_array['id'] : 'no', isset($shipping_method_array['method_enabled']) ? $shipping_method_array['method_enabled'] : 'yes', isset($shipping_method_array['method_title']) ? $shipping_method_array['method_title'] : '', isset($shipping_method_array['method_description']) ? $shipping_method_array['method_description'] : '', isset($shipping_method_array['tax_status']) ? $shipping_method_array['tax_status'] : '', isset($shipping_method_array['prices_include_tax']) ? $shipping_method_array['prices_include_tax'] : 'no', isset($shipping_method_array['method_free_shipping']) ? $shipping_method_array['method_free_shipping'] : '', isset($shipping_method_array['method_free_shipping_label']) ? $shipping_method_array['method_free_shipping_label'] : '', isset($shipping_method_array['method_free_shipping_cart_notice']) ? $shipping_method_array['method_free_shipping_cart_notice'] : 'no', isset($shipping_method_array['method_calculation_method']) ? $shipping_method_array['method_calculation_method'] : 'sum', isset($shipping_method_array['cart_calculation']) ? $shipping_method_array['cart_calculation'] : 'cart', isset($shipping_method_array['method_visibility']) ? $shipping_method_array['method_visibility'] : 'no', $method_default, isset($shipping_method_array['method_debug_mode']) ? $shipping_method_array['method_debug_mode'] : 'no', isset($shipping_method_array['method_integration']) ? $shipping_method_array['method_integration'] : 'no', IntegrationSettingsFactory::create_from_shipping_method_settings($shipping_method_array), isset($shipping_method_array['method_rules']) ? $shipping_method_array['method_rules'] : array()); |
| 29 | } |
| 30 | /** |
| 31 | * @param array $shipping_method_array |
| 32 | * |
| 33 | * @return MethodSettings |
| 34 | */ |
| 35 | public static function create_from_array_and_tax_status($shipping_method_array, $tax_status) |
| 36 | { |
| 37 | $shipping_method_array['tax_status'] = $tax_status; |
| 38 | return self::create_from_array($shipping_method_array, \false); |
| 39 | } |
| 40 | /** |
| 41 | * If free shipping is 0 (zero) should get same results as empty value. |
| 42 | * |
| 43 | * @see https://trello.com/c/UNGnC093/3048-flexible-shipping-307-co%C5%9B-popsu%C5%82o |
| 44 | * |
| 45 | * @param array $shipping_method_array . |
| 46 | * |
| 47 | * @return array |
| 48 | */ |
| 49 | private static function clean_settings(array $shipping_method_array) |
| 50 | { |
| 51 | if (!isset($shipping_method_array[self::FIELD_METHOD_FREE_SHIPPING]) || '0' === trim($shipping_method_array[self::FIELD_METHOD_FREE_SHIPPING])) { |
| 52 | $shipping_method_array[self::FIELD_METHOD_FREE_SHIPPING] = ''; |
| 53 | } |
| 54 | return $shipping_method_array; |
| 55 | } |
| 56 | } |
| 57 |