Пример #1
0
 /**
  * Return shipping total of a specific carriers for the cart
  *
  * @param int          $id_carrier      Carrier ID
  * @param array        $delivery_option Array of the delivery option for each address
  * @param bool         $useTax          Use Taxes
  * @param Country|null $default_country Default Country
  * @param array|null   $delivery_option Delivery options array
  *
  * @return float Shipping total
  */
 public function getCarrierCost($id_carrier, $useTax = true, Country $default_country = null, $delivery_option = null)
 {
     if (empty(self::$_total_shipping)) {
         if (is_null($delivery_option)) {
             $delivery_option = $this->getDeliveryOption($default_country);
         }
         $total_shipping = 0;
         $delivery_option_list = $this->getDeliveryOptionList();
         foreach ($delivery_option as $id_address => $key) {
             if (!isset($delivery_option_list[$id_address]) || !isset($delivery_option_list[$id_address][$key])) {
                 continue;
             }
             if (isset($delivery_option_list[$id_address][$key]['carrier_list'][$id_carrier])) {
                 if ($useTax) {
                     $total_shipping += $delivery_option_list[$id_address][$key]['carrier_list'][$id_carrier]['price_with_tax'];
                 } else {
                     $total_shipping += $delivery_option_list[$id_address][$key]['carrier_list'][$id_carrier]['price_without_tax'];
                 }
             }
         }
         self::$_total_shipping = $total_shipping;
     }
     return self::$_total_shipping;
 }