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

Правила раздела: faq.php?mode=okay
Модератор: Модераторы

makki
makki
Репутация: 158
Сообщения: 455
Зарегистрирован: 12.08.2016
С нами: 3 года
Откуда: Киев
Сайт Skype

Сообщение #1 makki » 20.06.2019, 20:17

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

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}
Cоздание и расширение функционала интернет-магазина на платформе OkayCMS

Andrey1234
Andrey1234

Сообщение #2 Andrey1234 » 31.07.2019, 13:27

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

makki
makki
Репутация: 158
Сообщения: 455
Зарегистрирован: 12.08.2016
С нами: 3 года
Откуда: Киев
Сайт Skype

Сообщение #3 makki » 31.07.2019, 17:17

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


Название раздела: Полезные решения для OkayCMS
Правила раздела: faq.php?mode=okay

Быстрый ответ


Введите код в точности так, как вы его видите. Регистр символов не имеет значения.
Код подтверждения

   

Вернуться в «Полезные решения для OkayCMS»

Кто сейчас на форуме (по активности за 5 минут)

Сейчас этот раздел просматривают: 1 гость