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

git-svn-id: http://dev.prestashop.com/svn/v1/branches/1.5.x@10420 b9a71923-0436-4b27-9f14-aed3839534dd
This commit is contained in:
mDeflotte
2011-11-22 14:09:52 +00:00
parent 3f649efee7
commit da416dea61
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