File "FreeShippingCalculator.php"
Full Path: /home/jlklyejr/public_html/post-date/wp-content/plugins/flexible-shipping/src/WPDesk/FS/TableRate/ShippingMethod/FreeShippingCalculator.php
File size: 2.44 KB
MIME-type: text/x-php
Charset: utf-8
<?php
/**
* Class FreeShippingCalculator
*
* @package WPDesk\FS\TableRate\ShippingMethod
*/
namespace WPDesk\FS\TableRate\ShippingMethod;
use FSVendor\WPDesk\FS\TableRate\Settings\MethodSettings;
use FSVendor\WPDesk\FS\TableRate\Settings\MethodSettingsFactory;
use WPDesk_Flexible_Shipping;
/**
* Can calculate free shipping.
*/
class FreeShippingCalculator {
/**
* @param MethodSettings $shipping_method .
* @param float $cart_contents_cost .
*
* @return bool
*/
public function is_free_shipping( MethodSettings $shipping_method, $cart_contents_cost ) {
/**
* Can provide free shipping callback.
* For internal use.
*
* @internal
*/
$free_shipping_calculation_callback = apply_filters(
'flexible-shipping/shipping-method/free-shipping-callback',
array( $this, 'is_free_shipping_callback' ),
$shipping_method->get_raw_settings()
);
$is_free_shipping = $free_shipping_calculation_callback( $shipping_method->get_raw_settings(), $cart_contents_cost );
$is_free_shipping = apply_filters_deprecated(
'flexible_shipping_is_free_shipping',
array( $is_free_shipping, $shipping_method->get_raw_settings(), $cart_contents_cost ),
'4.0.0',
'flexible-shipping/shipping-method/is-free-shipping'
);
/**
* Can modify free shipping.
*
* @param bool $is_free_shipping Current is_free_shipping value based on method settings.
* @param array $shipping_method Flexible shipping method settings.
* @param float $cart_contents_cost Shipping contents cost.
*
* @return bool
*/
return apply_filters( 'flexible-shipping/shipping-method/is-free-shipping', $is_free_shipping, $shipping_method->get_raw_settings(), $cart_contents_cost );
}
/**
* Is free shipping?
*
* @param array $shipping_method_settings .
* @param float $cart_contents_cost .
*
* @return bool
*/
public function is_free_shipping_callback( $shipping_method_settings, $cart_contents_cost ) {
$shipping_method = MethodSettingsFactory::create_from_array( $shipping_method_settings );
$is_free_shipping = false;
$free_shipping = $shipping_method->get_free_shipping();
if ( isset( $free_shipping ) && '' !== $free_shipping ) {
$free_shipping = (float) trim( $free_shipping );
if ( is_numeric( $free_shipping ) ) {
if ( (float) apply_filters( 'flexible_shipping_value_in_currency', $free_shipping ) <= (float) $cart_contents_cost ) {
$is_free_shipping = true;
}
}
}
return $is_free_shipping;
}
}