Всем привет!
Пытаюсь внести расширенный функционал в стандартный модуль доставки в UMI CMS: различную стоимость доставки в зависимости от категории товара.
<?php
class courierDelivery extends delivery {
public function validate(order $order) {
return true;
}
public function getDeliveryPrice(order $order) {
$deliveryPrice = $this->object->price;
$minOrderPrice = $this->object->order_min_price;
$cat1 = $this->object->cat_1;
$cat2 = $this->object->cat_2;
$contempord = $order->getItems();
if(is_null($minOrderPrice)){
return $deliveryPrice;
}
if(is_null($cat1)){
return $deliveryPrice;
} else {
foreach($contempord as $item) {
$itid = $item->getId();
$hier = umiHierarchy::getInstance();
$page_id = $hier->getParent($itid);
if($page_id == $cat1) {
return $deliveryPrice = $this->object->price_1;
}
}
}
if(is_null($cat2)){
return $deliveryPrice;
} else {
foreach($contempord as $item) {
$itid = $item->getId();
$hier = umiHierarchy::getInstance();
$page_id = $hier->getParent($itid);
if($page_id == $cat2) {
return $deliveryPrice = $this->object->price_2;
}
}
}
$orderPrice = $order->getActualPrice() - $order->getDeliveryPrice();
return ($orderPrice < $minOrderPrice) ? $deliveryPrice : 0;
}
};
?>
$cat_1 и
$cat_2 — необходимые категории,
$price_1 и
$price_2 — стоимость доставки для них. В результате этого кода происходит ровно ничего. Плюсом если в переменную
$deliveryPrice просто внести целое число вместо
$this->object->price, то тоже ничего не происходит — система продолжает считывать из поля price