WC_Shipping_Legacy_Local_Delivery::calculate_shipping( array $package = array() )
Calculate_shipping function.
Description Description
Parameters Parameters
- $package
-
(Optional) (default: array()).
Default value: array()
Source Source
File: includes/shipping/legacy-local-delivery/class-wc-shipping-legacy-local-delivery.php
public function calculate_shipping( $package = array() ) {
$shipping_total = 0;
switch ( $this->type ) {
case 'fixed':
$shipping_total = $this->fee;
break;
case 'percent':
$shipping_total = $package['contents_cost'] * ( $this->fee / 100 );
break;
case 'product':
foreach ( $package['contents'] as $item_id => $values ) {
if ( $values['quantity'] > 0 && $values['data']->needs_shipping() ) {
$shipping_total += $this->fee * $values['quantity'];
}
}
break;
}
$rate = array(
'id' => $this->id,
'label' => $this->title,
'cost' => $shipping_total,
'package' => $package,
);
$this->add_rate( $rate );
}