Как сделать редирект после чистки корзины в minishop2?

Приветствую господа. Подскажите, как можно сделать редирект на главную страницу после нажатия на кнопку «чистка корзины»?
Гуглил способы, единственное что нашел:
//данный способ мне не подходит (это условие "если корзина пуста")
{if !count($products)}
        <script>
        	document.location.href="/index.html";
        </script>
{else}
Но этот способ мне не подходит! Пробовал скриптом через button onlick — безрезультатно. Есть варианты?))
Дмитрий
27 января 2021, 01:26
modx.pro
1
683
0

Комментарии: 25

Alexey
27 января 2021, 08:51
0
Привет!

github.com/Ibochkarev/miniShop2/blob/68e454bb000ce9182415c0c7719a9212a3042cfd/assets/components/minishop2/js/web/default.js#L287

Переопределяем файл в настройках минишопа, вместо

location.reload();

добавляем свою логику.
    Дмитрий
    27 января 2021, 12:53
    0
    Спасибо!) а можете подсказать, что нужно конкретно вписать, чтобы направлял на главную старицу? А то мой уровень «мамкин программист»))
    Прям сильно выучите!)
      Alexey
      27 января 2021, 13:13
      0
      Как-то так?

      document.location.href = "https://mySite.ru/";
        Дмитрий
        27 января 2021, 13:16
        0
        Спасибо, попробую, отпишусь!)
          Дмитрий
          27 января 2021, 17:38
          0
          Не помогло((, станица просто обновляется.
          Замннил:
          status: function (status) {
           if (status['total_count'] < 1) {
          location.reload();
           }
          на
          status: function (status) {
          if (status['total_count'] < 1) {
          document.location.href = "https://mySite.ru/";
          }
            Alexey
            27 января 2021, 17:40
            0
            Кеш браузера и админки чистил?
              Alexey
              27 января 2021, 17:41
              0
              Можно ссылку на сайт?
                Дмитрий
                27 января 2021, 17:48
                0
                ссылочка тут нужно нажать «добавить заказ» и ниже отобразится msCart с кнопкой «очистить»
                Кеш чистил везде)
                  Alexey
                  27 января 2021, 17:56
                  0
                  Возможно, это мешает?

                  skrinshoter.ru/s/270121/WoCGrwOB?a

                  И ещё:

                  skrinshoter.ru/s/270121/WRgO1cF4?a

                  тут, конечно, желательно свой домен прописать)))
                    Alexey
                    27 января 2021, 17:58
                    0
                    skrinshoter.ru/s/270121/XCmhIbfX

                    если так товар удалить, то редирект на главную идет
                      Дмитрий
                      27 января 2021, 18:14
                      0
                      Предлагали еще скрипт такой, но что то тоже — безрезультатно)
                      miniShop2.Callbacks.Cart.clean.response.success = function () {	
                        location.href = "stranica.html";
                        return false;
                      }
                      Дмитрий
                      27 января 2021, 18:04
                      0
                      хм, это я тестировал метод колхозный, забыл удалить))
                      Удалил, но так и не переносит на главную, только с «мусорными корзинами» работает)
                      Блин, что же не так)
        Aleksandr Huz
        27 января 2021, 13:48
        +1
        Используйте события, а именно msOnEmptyCart.
        Править исходники не рекомендую.
          Alexey
          27 января 2021, 13:57
          0
          Даже с переопределением файла?
            Aleksandr Huz
            27 января 2021, 14:36
            0
            Зачем это делать, если можно создать событие и добавить одну строчку?
            А если js исходника поменяется, а вы переопределили метод, новый функционал не будет работать.

            Вообщем, возможно ваш вариант и имеет место быть, но это не лучший вариант.
              Alexey
              27 января 2021, 16:30
              +1
              Вначале я тоже насчет плагина подумал. Но потом решил, что если логика написана на js, то менять её лучше там же. В том плане, что если логику понадобится чуть усложнить (ну там, модалку вывести после очистки), то через плагин сходу не реализовать.

              А так-то да — в плане новых версий плагин предпочтительнее
                Alexey
                27 января 2021, 18:37
                +1
                Да, Александр, вы правы — фигня получается с файлом, я погорячился. Причем — если товары удалить поочереди, то норм срабатывает. А если кнопкой очистки, то ни в какую… странно
              Дмитрий
              27 января 2021, 14:03
              0
              Через Js? У вас есть пример кода?)
            Alexey
            27 января 2021, 22:26
            1
            +3
            В общем, оказалось так. В коде формы кнопки очистки

            <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-файла, как описывал выше.
              Дмитрий
              28 января 2021, 02:51
              0
              Огромное спасибо!))))))))))))))))) Сработало!!!!!!!!!!!!!!!!!!!!!)))))))))))))))))) Как же все просто оказалось)
              Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
              25