msCart: как сделать кнопку "Товар уже в корзине"
Использую сниппет msCart для вывода корзины. Вопрос — как можно сделать, чтобы после добавления в корзину кнопка превращалась в Товар уже в корзине. Где хранится информация об этом?
Комментарии: 8
Тут уже отвечали на подобный вопрос https://modx.pro/solutions/4844-dynamic-buy-button-in-the-shopping-cart/
Для себя сделал проще, при клике на корзину товара, к контейнеру добавляется класс -in-cart, по нему стилями заменяется кнопка. Что бы при перезагрузке страницы все не сбрасывалось сделал такой сниппет
Принимает id товара, если он есть в корзине подставляет класс -in-cart.
Для себя сделал проще, при клике на корзину товара, к контейнеру добавляется класс -in-cart, по нему стилями заменяется кнопка. Что бы при перезагрузке страницы все не сбрасывалось сделал такой сниппет
$cart = $_SESSION['minishop2']['cart'];
foreach($cart as $product) {
if ($product['id'] == $id) {
$result = '-in-cart';
}
}
return $result;
Принимает id товара, если он есть в корзине подставляет класс -in-cart.
Спасибо большое!
Тоже самое можно сделать без сниппета на Fenom.
Поделитесь пожалуйста решением на Fenom)
{var $cls = ''}
{var $product_id = 'тут присваиваем id товара'}
{var $cart = $.session['minishop2']['cart'] ?: []}
{foreach $cart as $product}
{if $product['id'] == $product_id}
{var $cls = '-in-cart'}
{break}
{/if}
{/foreach}
Что-то вроде этого. Далее переменную $cls используем для указания класса. {$product_id | in : $cart ? 'значение присутствует в массиве' : 'значение не найдено'}
Разве это рабочий вариант?..
Кстати, без скобок он ещё более неработоспособный, даже если б в массиве minishop2 из сессии данные о товарах хранились в виде id => array().
Fenom ждёт, что после $cart ты ему ещё несколько опций дашь, отсюда там необходимы скобки, которые будут оборачивать "$product_id | in: $cart".
Но повторюсь: вариант в любом случае не рабочий.
Fenom ждёт, что после $cart ты ему ещё несколько опций дашь, отсюда там необходимы скобки, которые будут оборачивать "$product_id | in: $cart".
Но повторюсь: вариант в любом случае не рабочий.
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.