Mr.Prop

Mr.Prop

С нами с 09 сентября 2019; Место в рейтинге пользователей: #2819
Mr.Prop
09 сентября 2019, 02:01
0
Может это поможет?
modx.pro/help/3898#comment-113583
Mr.Prop
09 сентября 2019, 01:46
0
Искал ответ почти неделю. Прошерстил весь сайт вдоль и поперёк. Пробовал переопределить класс корзины и ещё кучу вариантов с сайта. Очень много вариантов и все решают какую-то задачу вместе с обновлением корзины.
А если у меня задача другая, то…
И тут пришла мысль: а почему бы не перезагрузить корзину средствами JS при наступлении события?
А какое событие у нас наступает? Правильно — изменяется количество ВСЕГДА когда мы что-то делаем в корзине.
В общем берём файл по адресу
assets/components/minishop2/js/web/default.js
или его изменённую версию (если она у вас есть)
и ищем строки:
if (status['total_count'] < 1) {
    location.reload();
}
В этих строках написано: если количество меньше 1 (одного), то перезагрузить страницу.

Меняем на строки:
if(window.location.pathname == "/cart"){
   location.reload();
}
В этих строках написано: если адрес раздела сайта, в котором мы находимся, совпадает с /cart то перезагрузить страницу.

Полный адрес у меня выглядит так:
мой-сайт.ru/cart

Соответственно, если адрес
мой-сайт.ru/korzina
то новая строка будет выглядеть
if(window.location.pathname == "/korzina"){
   location.reload();
}
Теперь после обновления количества хоть на мониторе мышкой, хоть на телефоне страница будет перезагружена и мы увидим её обновлённый вариант.
А если мы будем находиться на любой другой странице сайта, то условие не будет срабатывать и всё будет работать как и раньше.

Если у адреса после названия раздела есть «хвост» типа
мой-сайт.ru/korzina&что-то#еще-что-то
то смотрите в поисковике функцию Location JS

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