Задать вопрос
@ioa28

Доставка в UMI CMS: почему не задаётся стоимость доставки при выполнении условий?

Всем привет!

Пытаюсь внести расширенный функционал в стандартный модуль доставки в 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
  • Вопрос задан
  • 100 просмотров
Подписаться 1 Простой Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы