// Autoset id_carrier on the cart constructor + Replace a hookExec()

This commit is contained in:
mDeflotte
2011-11-22 14:09:52 +00:00
parent 927b869601
commit 95a749de8b
4 changed files with 35 additions and 11 deletions
+23 -5
View File
@@ -167,6 +167,18 @@ class CartCore extends ObjectModel
}
else
$this->_taxCalculationMethod = Group::getDefaultPriceDisplayMethod();
// id_carrier is not setted since 1.5.0
// Need to set it virtualy by using the delivery_option_list
if (!empty($this->delivery_option))
{
$delivery_option = unserialize($this->delivery_option);
if (count($delivery_option) == 1)
{
$delivery_option_list = $this->getDeliveryOptionList();
$this->id_carrier = $this->getIdCarrierFromDeliveryOption($delivery_option);
}
}
}
public function add($autodate = true, $nullValues = false)
@@ -1509,15 +1521,21 @@ class CartCore extends ObjectModel
if (count($delivery_option) == 1)
{
$delivery_option_list = $this->getDeliveryOptionList();
foreach ($delivery_option as $key => $value)
if (isset($delivery_option_list[$key]) && isset($delivery_option_list[$key][$value]))
if (count($delivery_option_list[$key][$value]['carrier_list']) == 1)
$this->id_carrier = $delivery_option_list[$key][$value]['carrier_list'][0];
$this->id_carrier = $this->getIdCarrierFromDeliveryOption($delivery_option);
$this->delivery_option = serialize($delivery_option);
}
}
private function getIdCarrierFromDeliveryOption($delivery_option)
{
$delivery_option_list = $this->getDeliveryOptionList();
foreach ($delivery_option as $key => $value)
if (isset($delivery_option_list[$key]) && isset($delivery_option_list[$key][$value]))
if (count($delivery_option_list[$key][$value]['carrier_list']) == 1)
return $delivery_option_list[$key][$value]['carrier_list'][0];
return 0;
}
/**
* Get the delivery option seleted, or if no delivery option was selected, the cheapest option for each address
* @return array delivery option