Кэш браузера влияет на работу плагина Minishop2?
Проблема в том, что при очищенном кеше браузера, значение переменной не передается.
Короткое видео: https://www.youtube.com/embed/zNARHAGA0Rk
Тестовый сайт: http://s15513.h10.modhost.pro/
Плагин Minishop2 сделал по инструкции.
Короткое видео: https://www.youtube.com/embed/zNARHAGA0Rk
Тестовый сайт: http://s15513.h10.modhost.pro/
Плагин Minishop2 сделал по инструкции.
<?php
if(!class_exists('msDeliveryInterface')) {
require_once dirname(dirname(dirname(__FILE__))) . '/model/minishop2/msdeliveryhandler.class.php';
}
class msDeliveryHandlerMsk extends msDeliveryHandler implements msDeliveryInterface{
public function getCost(msOrderInterface $order, msDelivery $delivery, $cost = 0) {
$freedeliverysumm = 3000;
$cart = $order->ms2->cart->status();
$cart_cost = $cart['total_cost'];
if($cart_cost > $freedeliverysumm){
$this->modx->setPlaceholder('sinastry','Сумма больше 3000');
return $cost;
}else{
$delivery_cost = parent::getCost($order, $delivery, $cost);
$this->modx->setPlaceholder('sinastry','Сумма меньше 3000');
return $delivery_cost;
}
}
}
Не понимаю в чем проблема? Комментарии: 7
Как вызывается плейсхолдер на странице?
В чанке tpl.msOrder
{$_modx->getPlaceholder('sinastry')}
Мне кажется странным идея выставлять плейсхолдер в обработчике доставки что срабатывает по ajax и затем ловить его на странице.
Задача, при достижении конкретной суммы показывать дополнительные поля при оформлении заказа.
Может, конечно, нужно делать это как-то иначе, но пока я не придумал ничего лучше.
Может, конечно, нужно делать это как-то иначе, но пока я не придумал ничего лучше.
Вам нужно перейти на сторону js и там в callback к Order.getcost.success написать эту же проверку, и результат вставлять куда вам нужно с помощью jquery
Спасибо за совет!
А если сделать плагином MODX на сабытие msOnSubmitOrder, как сказано здесь, вот только у меня почему-то не работает, может в Minishop2, что-то изменилось?
if ($modx->event->name == 'msOnSubmitOrder'){
if($cart = $order->ms2->cart->status()) {
if($cart['total_cost'] < 3000) {
$modx->toPlaceholder('sinastry','Сумма меньше 3000');
} else {
$modx->toPlaceholder('sinastry','Сумма больше 3000');
}
}
}
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.