Jump to content


Photo
* * * * * 2 votes

Как сделать свой элемент для скидки в JBZoo 220?

рецепт элемент 220v скидка

13 replies to this topic

#11 zeus07

zeus07
  • JBZoo User (rus)
  • User rate: 6.6
  • posts: 1090
  • topics: 172

Posted 06 October 2016 - 09:15

Ну как бы да, немного нелогично конечно, то есть в корзине модификатор будет выводиться, но при этом будет постоянно показывать по нулям...Но главное, что будет работать! Спасибо, как сделаю, отпишусь и выложу элемент скидки, возможно кому-то пригодится!


  • 0

#12 zeus07

zeus07
  • JBZoo User (rus)
  • User rate: 6.6
  • posts: 1090
  • topics: 172

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();

Подскажите пожалуйста, в чём ошибка может быть?


  • 0

#13 SmetDenis

SmetDenis
  • Topic Starter
  • Administrators
  • User rate: 139.4
  • posts: 16232
  • topics: 200

Posted 07 October 2016 - 16:00

Код будет обрабатываться дважды. первый, когда элемент оплаты еще не забинден.
Нужно предварительно проверять его наличие.

if ($payment = $this->getOrder()->getPayment()) {
    $type = $payment->getElementType();
  ... // прочее
}

  • 1
JBZoo v4.0 и новый чудный мир Open Source GPL
Отключайте проверку лицензий как можно скорее!



— Есть два типа людей: Кто еще не делает бекапы и кто уже делает бекапы.


#14 zeus07

zeus07
  • JBZoo User (rus)
  • User rate: 6.6
  • posts: 1090
  • topics: 172

Posted 07 October 2016 - 22:23

Огромное спасибо! Всё получилось!


  • 0





Also tagged with one or more of these keywords: рецепт, элемент, 220v, скидка

Click to return to top of page in style!