такой код на html:
<form class="buy-1-click-form ms2_form" method="post" id="form_{$_modx->resource.id}">
<input type="hidden" name="id" value="{$_modx->resource.id}">
<input type="hidden" name="price" value="{$_modx->resource.price} ">
<input type="hidden" name="pagetitle" value="{$_modx->resource.pagetitle}">
<input type="hidden" name="count" value="1">
<button type="submit" name="ms2_action" value="cart/add" class="btn buy-1-click-btn">Купить в 1 клик</button>
</form>
И такой на JS:
$('.buy-1-click-form').on('submit', function (e) {
e.preventDefault();
setTimeout(function() {
document.location = window.location.origin + '/cart'
},300);
});
Без таймаута иногда не работает. Но таймаут - это костыль. На одних ПК он нужен поменьше, на других побольше.
Как мне сделать это без таймаута?
В Minishop2 есть callback'и, например:
miniShop2.Callbacks.Cart.add.response.success
Но в них нельзя получить объект, по которому кликнули. Или даже форму. А у меня, помимо кнопки "Купить в 1 клик", есть и обычные кнопки. Так что callback - не вариант.
Мне надо менять стандартные js файлы? Или есть более удобное решение?
https://modxguru.ru/blog/solutions/zakaz-v-1-klik-na-minishop2.html
Мне нужно просто при нажатии на кнопку перебросить пользователя в корзину.
можно сделать кнопку стандартную "Добавить в корзину" и в js на колбэк miniShop2.Callbacks.Cart.add.response.success = funtion(){ тут перенаправить на страницу Корзины };
Колбэк вешается не на кнопку, а на событие - добавление в корзину. С ним у меня всегда будет редирект в корзину. Даже если я нажал кнопку "Добавить в корзину". А мне нужно, чтобы редирект был только тогда, когда я нажал кнопку "Купить в 1 клик".
А я где то написал про колбэк на кнопку?)
Ты обработай кнопку
А как узнать, если не моя кнопка? В атрибуте колбэка нет target
Обсуждают сегодня