Warning: This method has been deprecated.
WC_Shipping_Legacy_Flat_Rate::get_extra_cost( string $cost_string, string $type, array $package )
Get extra cost.
Description Description
Parameters Parameters
- $cost_string
-
(Required) Cost string.
- $type
-
(Required) Type.
- $package
-
(Required) Package information.
Return Return
(float)
Source Source
File: includes/shipping/legacy-flat-rate/class-wc-shipping-legacy-flat-rate.php
public function get_extra_cost( $cost_string, $type, $package ) {
$cost = $cost_string;
$cost_percent = false;
// @codingStandardsIgnoreStart
$pattern =
'/' . // Start regex.
'(\d+\.?\d*)' . // Capture digits, optionally capture a `.` and more digits.
'\s*' . // Match whitespace.
'(\+|-)' . // Capture the operand.
'\s*' . // Match whitespace.
'(\d+\.?\d*)' . // Capture digits, optionally capture a `.` and more digits.
'\%/'; // Match the percent sign & end regex.
// @codingStandardsIgnoreEnd
if ( preg_match( $pattern, $cost_string, $this_cost_matches ) ) {
$cost_operator = $this_cost_matches[2];
$cost_percent = $this_cost_matches[3] / 100;
$cost = $this_cost_matches[1];
}
switch ( $type ) {
case 'class':
$cost = $cost * count( $this->find_shipping_classes( $package ) );
break;
case 'item':
$cost = $cost * $this->get_package_item_qty( $package );
break;
}
if ( $cost_percent ) {
switch ( $type ) {
case 'class':
$shipping_classes = $this->find_shipping_classes( $package );
foreach ( $shipping_classes as $shipping_class => $items ) {
foreach ( $items as $item_id => $values ) {
$cost = $this->calc_percentage_adjustment( $cost, $cost_percent, $cost_operator, $values['line_total'] );
}
}
break;
case 'item':
foreach ( $package['contents'] as $item_id => $values ) {
if ( $values['data']->needs_shipping() ) {
$cost = $this->calc_percentage_adjustment( $cost, $cost_percent, $cost_operator, $values['line_total'] );
}
}
break;
case 'order':
$cost = $this->calc_percentage_adjustment( $cost, $cost_percent, $cost_operator, $package['contents_cost'] );
break;
}
}
return $cost;
}
Changelog Changelog
| Version | Description |
|---|---|
| 2.4.0 | Introduced. |