Сменить кнопку "Добавить в корзину" на "Оформить"
Магазин на MiniShop2.
Кнопка «Добавить в корзину» реализована стандартно:
Хочу, чтобы после добавления товара, кнопка менялась на «Оформить заказ» с соотвествующей ссылкой в корзину.
Как правильнее это реализовать в минишопе?
Кнопка «Добавить в корзину» реализована стандартно:
<button type="submit" class="btn btn-default" name="ms2_action" value="cart/add">
[[%ms2_frontend_add_to_cart]]
</button>Хочу, чтобы после добавления товара, кнопка менялась на «Оформить заказ» с соотвествующей ссылкой в корзину.
Как правильнее это реализовать в минишопе?
Комментарии: 12
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
СергейДешево — джикверей ловить клик по кнопке, делать её невидимой, открывать к показу вторую кнопку, которая до этого скрыта. Во второй кнопке требуемая вам ссылка и текст. тут минус — если обновиь страницу, то кнопка опять в исходном варианте, для обхода этого неудобства этого см. 2 вариант.
Дорого — привязываться к событию добавления в корзину и плюс привязываться к состоянию корзины — есть ли там данный товар или нет — открывая карту товара или список товаров (категорию), мы соответственно сразу видим, что этот товар уже в корзине. тут два подварианта — или показывать кнопку перехода в корзину или все-таки дать возможность добавить этот товар в корзину еще раз.
СергейНашел вот такое решение, но завести его пока не удалось:
modx.pro/solutions/4844-dynamic-buy-button-in-the-shopping-cart/
СергейЛогика такая — сама кнопка такая же плюс получаю массив ID из текущей корзины, сравниваю ID товаров в корзине с ID текущего товара (если я на странице товара) или в цикле (JS) прохожу по списку товаров 9если я на странице категории), где совпало, меняю видимость кнопок.
Какой плюс у меня — не требушу сервер, т.е. работа идет на клиенте, когда 500 клиентов в день, экономнее это делать на клиенте. Ты привел ссылку — там делается все на сервере.
ВасилийБог выложил все сюда github.com/bezumkin/miniShop2 и сюда docs.modx.pro/components/minishop2/development/scripts-and-stylesСергейВдруг есть готовые решения из прошлых работ
СергейТакая фишка — показывать что этот товар уже в корзине — на практике редко востребовано — или если насыщенный ассортиментно магазин, чтобы лишнего не кинуть в корзину, или если есть какие-то лимиты, например не продают больше одного товара за раз, чтобы клиент лишний раз не тыкал в кнопку.
СергейСоветую подучить основы!!)) (Метод .show() добавляет, если не присвоено в css-стилях, умолчальный стиль, тег a у нас строчный, как-то так)
В данном случае добавляем стили CSS для упомянутого элемента и при отработке метода .show() всё станет шоколадно! Вот:
Решил вопрос обертыванием ссылки в див.
Сергейчто перекрыло бы стили из css и тогда точно все станет шоколадо!
А углублять вложенность надо делать в самом крайнем случае… В MS2 этой вложенности и так выше крыши.
Кстати, давал сей пример из работающего проекта, так что у меня все работает без оборачивания в div и без инлайн-стилей, у меня просто хитрый css)))