WC_Shipping_Legacy_Flat_Rate::evaluate_cost
Evaluate a cost from a sum/string.
Method of the class: WC_Shipping_Legacy_Flat_Rate{}
No Hooks.
Returns
String.
Usage
// protected - for code of main (parent) or child class $result = $this->evaluate_cost( $sum, $args );
- $sum(string) (required)
- Sum to evaluate.
- $args(array)
- Arguments.
Default:array()
WC_Shipping_Legacy_Flat_Rate::evaluate_cost() WC Shipping Legacy Flat Rate::evaluate cost code WC 10.8.1
protected function evaluate_cost( $sum, $args = array() ) {
include_once WC()->plugin_path() . '/includes/libraries/class-wc-eval-math.php';
$locale = localeconv();
$decimals = array( wc_get_price_decimal_separator(), $locale['decimal_point'], $locale['mon_decimal_point'] );
$this->fee_cost = $args['cost'];
// Expand shortcodes.
add_shortcode( 'fee', array( $this, 'fee' ) );
$sum = do_shortcode(
str_replace(
array(
'[qty]',
'[cost]',
),
array(
$args['qty'],
$args['cost'],
),
$sum
)
);
remove_shortcode( 'fee', array( $this, 'fee' ) );
// Remove whitespace from string.
$sum = preg_replace( '/\s+/', '', $sum );
// Remove locale from string.
$sum = str_replace( $decimals, '.', $sum );
// Trim invalid start/end characters.
$sum = rtrim( ltrim( $sum, "\t\n\r\0\x0B+*/" ), "\t\n\r\0\x0B+-*/" );
// Do the math.
return $sum ? WC_Eval_Math::evaluate( $sum ) : 0;
}