Как сделать редирект после чистки корзины в minishop2?
Приветствую господа. Подскажите, как можно сделать редирект на главную страницу после нажатия на кнопку «чистка корзины»?
Гуглил способы, единственное что нашел:
Гуглил способы, единственное что нашел:
//данный способ мне не подходит (это условие "если корзина пуста")
{if !count($products)}
<script>
document.location.href="/index.html";
</script>
{else}
Но этот способ мне не подходит! Пробовал скриптом через button onlick — безрезультатно. Есть варианты?)) Комментарии: 25
Привет!
github.com/Ibochkarev/miniShop2/blob/68e454bb000ce9182415c0c7719a9212a3042cfd/assets/components/minishop2/js/web/default.js#L287
Переопределяем файл в настройках минишопа, вместо
добавляем свою логику.
github.com/Ibochkarev/miniShop2/blob/68e454bb000ce9182415c0c7719a9212a3042cfd/assets/components/minishop2/js/web/default.js#L287
Переопределяем файл в настройках минишопа, вместо
location.reload();
добавляем свою логику.
Спасибо!) а можете подсказать, что нужно конкретно вписать, чтобы направлял на главную старицу? А то мой уровень «мамкин программист»))
Прям сильно выучите!)
Прям сильно выучите!)
Как-то так?
document.location.href = "https://mySite.ru/";
Спасибо, попробую, отпишусь!)
Не помогло((, станица просто обновляется.
Замннил:
Замннил:
status: function (status) {
if (status['total_count'] < 1) {
location.reload();
}
наstatus: function (status) {
if (status['total_count'] < 1) {
document.location.href = "https://mySite.ru/";
}
Кеш браузера и админки чистил?
Можно ссылку на сайт?
ссылочка тут нужно нажать «добавить заказ» и ниже отобразится msCart с кнопкой «очистить»
Кеш чистил везде)
Кеш чистил везде)
Возможно, это мешает?
skrinshoter.ru/s/270121/WoCGrwOB?a
И ещё:
skrinshoter.ru/s/270121/WRgO1cF4?a
тут, конечно, желательно свой домен прописать)))
skrinshoter.ru/s/270121/WoCGrwOB?a
И ещё:
skrinshoter.ru/s/270121/WRgO1cF4?a
тут, конечно, желательно свой домен прописать)))
Предлагали еще скрипт такой, но что то тоже — безрезультатно)
miniShop2.Callbacks.Cart.clean.response.success = function () {
location.href = "stranica.html";
return false;
}
хм, это я тестировал метод колхозный, забыл удалить))
Удалил, но так и не переносит на главную, только с «мусорными корзинами» работает)
Блин, что же не так)
Удалил, но так и не переносит на главную, только с «мусорными корзинами» работает)
Блин, что же не так)
Используйте события, а именно msOnEmptyCart.
Править исходники не рекомендую.
Править исходники не рекомендую.
Даже с переопределением файла?
Зачем это делать, если можно создать событие и добавить одну строчку?
А если js исходника поменяется, а вы переопределили метод, новый функционал не будет работать.
Вообщем, возможно ваш вариант и имеет место быть, но это не лучший вариант.
А если js исходника поменяется, а вы переопределили метод, новый функционал не будет работать.
Вообщем, возможно ваш вариант и имеет место быть, но это не лучший вариант.
Вначале я тоже насчет плагина подумал. Но потом решил, что если логика написана на js, то менять её лучше там же. В том плане, что если логику понадобится чуть усложнить (ну там, модалку вывести после очистки), то через плагин сходу не реализовать.
А так-то да — в плане новых версий плагин предпочтительнее
А так-то да — в плане новых версий плагин предпочтительнее
Да, Александр, вы правы — фигня получается с файлом, я погорячился. Причем — если товары удалить поочереди, то норм срабатывает. А если кнопкой очистки, то ни в какую… странно
Через Js? У вас есть пример кода?)
Нет, нужно в админке создать плагин на событие msOnEmptyCart
if($modx->event->name == 'msOnEmptyCart') {
$modx->sendRedirect('http://site.ru');
}
Как понимаю, нужно создать сниппет и куда то его засунуть?) в msCart?
необходимо создать плагин docs.modx.com/current/en/extending-modx/plugins
Создал, ничего не поменялось)
В общем, оказалось так. В коде формы кнопки очистки
Скрипт минишопа смотрит в action формы кнопки очистки корзины, если его нет — подставляет из своих настроек. Это касается именно кнопки очистки. Если товары удалять по очереди, то тут либо плагин, либо — правка js-файла, как описывал выше.
<form method="post">
<button type="submit" name="ms2_action" value="cart/clean" class="btn btn-danger">Очистить</button>
</form>
нужно добавить<form method="post" action="/">
<button type="submit" name="ms2_action" value="cart/clean" class="btn btn-danger">Очистить</button>
</form>
Скрипт минишопа смотрит в action формы кнопки очистки корзины, если его нет — подставляет из своих настроек. Это касается именно кнопки очистки. Если товары удалять по очереди, то тут либо плагин, либо — правка js-файла, как описывал выше.
Огромное спасибо!))))))))))))))))) Сработало!!!!!!!!!!!!!!!!!!!!!)))))))))))))))))) Как же все просто оказалось)
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.