Страница 1 из 1

Дублирование заказа

Добавлено: 20.06.2019, 20:17
makki
Иногда, из-за задержки сервера, приходят дубли заказов, поскольку покупатель успевает нажать дважды на кнопку Оформить заказ. Чтобы избежать данной проблемы можно сделать следующее:

1) В файле design/ваш_шаблон/html/cart.tpl в начале в строке

Код: Выделить всё

<form id="captcha_id" method="post" name="cart" class="fn_validate_cart">

добавми новый класс fn_cart, чтобы получилось так:

Код: Выделить всё

<form id="captcha_id" method="post" name="cart" class="fn_validate_cart fn_cart">


2) В файле design/okay_shop/html/scripts.tpl например перед строкой

Код: Выделить всё

{if $subscribe_success}

добавим

Код: Выделить всё

{if $smarty.get.module == 'CartView'}
   $(document).on('submit', '.fn_cart', function() {
       $(this).find(':submit').prop('type','button');
       return true;
   });
{/if}

Добавлено: 31.07.2019, 13:27
Andrey1234
Ваш код работает не корректно.
Так как если пользователь не полностью заполнил обязательные поля и нажал кнопку Оформить заказ, то после заполнения всех полей, кнопка Оформить заказ уже не сработает.

Добавлено: 31.07.2019, 17:17
makki
Andrey1234 писал(а):Ваш код работает не корректно.
Так как если пользователь не полностью заполнил обязательные поля и нажал кнопку Оформить заказ, то после заполнения всех полей, кнопка Оформить заказ уже не сработает.
Вы предполагаете или проверяли? Все работает корректно. Событие on('submit') сработает после js валидации полей. А если валидация происходит на стороне сервера, страница перезагружается и кнопка снова становится активной.