171 похожих чатов

Здравствуйте. Хочу сделать кнопку "Купить в 1 клик" для Minishop2. Я написал

такой код на 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 файлы? Или есть более удобное решение?

8 ответов

52 просмотра

https://modxguru.ru/blog/solutions/zakaz-v-1-klik-na-minishop2.html

Evg- Автор вопроса
Александр
https://modxguru.ru/blog/solutions/zakaz-v-1-klik-...

Мне нужно просто при нажатии на кнопку перебросить пользователя в корзину.

Evg
Мне нужно просто при нажатии на кнопку перебросить...

можно сделать кнопку стандартную "Добавить в корзину" и в js на колбэк miniShop2.Callbacks.Cart.add.response.success = funtion(){ тут перенаправить на страницу Корзины };

Evg- Автор вопроса
Dan
можно сделать кнопку стандартную "Добавить в корзи...

Колбэк вешается не на кнопку, а на событие - добавление в корзину. С ним у меня всегда будет редирект в корзину. Даже если я нажал кнопку "Добавить в корзину". А мне нужно, чтобы редирект был только тогда, когда я нажал кнопку "Купить в 1 клик".

Evg
Колбэк вешается не на кнопку, а на событие - добав...

А я где то написал про колбэк на кнопку?)

Evg- Автор вопроса
alexey1m
Ты обработай кнопку

А как узнать, если не моя кнопка? В атрибуте колбэка нет target

Похожие вопросы

Обсуждают сегодня

а через ESC-код ?
Alexey Kulakov
29
30500 за редактор? )
Владимир
47
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
13
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
program test; {$mode delphi} procedure proc(v: int32); overload; begin end; procedure proc(v: int64); overload; begin end; var x: uint64; begin proc(x); end. Уж не знаю...
notme
6
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
6
вы делали что-то подобное и как? может есть либы готовые? увидел картинку нокода, где всё линиями соединено и стало интересно попробовать то же в ddl на lua сделать. решил с ч...
Victor
8
Ребят в СИ можно реализовать ООП?
Николай
33
Подскажите пожалуйста, как в CustomDrawCell(Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean); получить наз...
A Z
7
Карта сайта