Не работает несколько плагинов на событие msOnBeforeChangeInCart в minishop2
Сделал простой плагин для теста (на контроль кол-ва товара):
Подумал, что может в msProductRemains какая-то проблема в коде. Закомментировал весь код плагина, но ситуация остается прежняя:
плагин msProductRemains включен — мой плагин не работает.
плагин msProductRemains ВЫключен — мой плагин стабильно работает.
Пробовал ставить разные приоритеты на событие msOnBeforeChangeInCart ( 0 своему плагину и 10 msProductRemains) — нет результата.
Для теста сделал тестовый плагин без кода вообще. Если его включаю, то мой основной плагин опять начинает дурить.
Что происходит и/или что я делаю не так?
ПС.
<?php
$minimal = 5;
switch ($modx->event->name) {
case 'msOnBeforeChangeInCart':
if ($minimal > 1) {
if (intval($scriptProperties['count']) < $minimal) {
$values = &$modx->event->returnedValues;
$values['count'] = $minimal;
}
break;
}
Но он то срабатывал, то не работал. Несколько часов бился, потом решил посмотреть есть-ли другие плагины на это событие, оказалось на msOnBeforeChangeInCart
висит еще плагин msProductRemains. Если его отключить, то мой плагин начинает работать всегда как ожидается. Если вернуть msProductRemains, то мой плагин работает рандомно (один раз из 10 сохранений плагина в админке).плагин msProductRemains включен — мой плагин не работает.
плагин msProductRemains ВЫключен — мой плагин стабильно работает.
Пробовал ставить разные приоритеты на событие msOnBeforeChangeInCart ( 0 своему плагину и 10 msProductRemains) — нет результата.
Для теста сделал тестовый плагин без кода вообще. Если его включаю, то мой основной плагин опять начинает дурить.
Что происходит и/или что я делаю не так?
ПС.
Комментарии: 3
Пробуй так:
<?php
$minimal = 5;
switch ($modx->event->name) {
case 'msOnBeforeChangeInCart':
$count = &$modx->event->params['count'];
if ($minimal > 1 && $count < $minimal) {
$count = $minimal;
}
$modx->event->returnedValues['count'] = $count;
break;
}
Если не поможет, то подключи свой сервис cart по етой инструкции, и измени там add() или если тебе надо именно при изменни количества, то меняй change()
Пробовал. Результат такой же. В итоге просто всё в один файл поместил.
Может еще modx устарел, год не обновлялся.
Может еще modx устарел, год не обновлялся.
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.