Ну как бы да, немного нелогично конечно, то есть в корзине модификатор будет выводиться, но при этом будет постоянно показывать по нулям...Но главное, что будет работать! Спасибо, как сделаю, отпишусь и выложу элемент скидки, возможно кому-то пригодится!
Как сделать свой элемент для скидки в JBZoo 220?
Started by
SmetDenis
, Jun 17 2015 08:00
рецепт элемент 220v скидка
13 replies to this topic
#11
Posted 06 October 2016 - 09:15
#12
Posted 06 October 2016 - 23:21
Сделал элемент скидки по вашей подсказке. В PHP вот такая функция:
public function getRate() { $type = $this->getOrder()->getPayment()->getElementType(); // получили тип способа оплаты $discount = 0; if ($type === 'robokassa' || $type === 'yandexmoney') { // проверяем, выбран ли нужный способ оплаты $discount = $this->config->get('rate', 0); } return $this->_order->val($discount)->negative(); // обязательно вернуть объект, добавляем знак минус (чтобы была скидка) }
При добавлении товара в корзину, в модуле корзины выводится ошибка, тоже самое и в карточке товара:
Fatal error: Call to a member function getElementType() on null in /.../.../.../.../media/zoo/applications/jbuniversal/cart-elements/modifierorderprice/discountroboyam/discountroboyam.php on line 24
Ругается вот на эту строку:
$type = $this->getOrder()->getPayment()->getElementType();
Подскажите пожалуйста, в чём ошибка может быть?
#13
Posted 07 October 2016 - 16:00
Код будет обрабатываться дважды. первый, когда элемент оплаты еще не забинден.
Нужно предварительно проверять его наличие.
Нужно предварительно проверять его наличие.
if ($payment = $this->getOrder()->getPayment()) { $type = $payment->getElementType(); ... // прочее }
JBZoo v4.0 и новый чудный мир Open Source GPL
Отключайте проверку лицензий как можно скорее!
Отключайте проверку лицензий как можно скорее!
— Есть два типа людей: Кто еще не делает бекапы и кто уже делает бекапы.
#14
Posted 07 October 2016 - 22:23
Огромное спасибо! Всё получилось!