Получение нескольких писем с одним и тем же контентом от одного и того же отправителя за короткий промежуток времени – главная болевая точка форм обратной связи Contact Form 7 WordPress.
Хотя некоторые собственники считают, что они вызваны ошибкой или спам-ботами, в большинстве случаев они создаются настоящими людьми.
Они спрашивают меня, могут ли они заставить Contact Form 7 предотвратить такое многократную отправку. На самом деле это совсем не сложно. У вас есть несколько вариантов, например отключение кнопки «Отправить» после первой отправки.
Такое решение для ВордПресс уже протестировано студией DigitalDealerz и найдено хорошее решение https://github.com/wayanwirka/cf7-no-double-submit
Также есть другое решение на уровне js кода:
var disableSubmit = false; jQuery('input.wpcf7-submit[type="submit"]').click(function() { jQuery(':input[type="submit"]').attr('value',"Отправляю…") if (disableSubmit == true) { return false; } disableSubmit = true; return true; }) var wpcf7Elm = document.querySelector( '.wpcf7' ); wpcf7Elm.addEventListener( 'wpcf7submit', function( event ) { jQuery(':input[type="submit"]').attr('value',"send") disableSubmit = false; }, false );
Но его главный недостаток – это невозможность отправки заявки, в случае ошибки заполнения (недостаток символов или пустое обязательное поле).
Почему такая функция не реализована по умолчанию? В действительности такие функции намеренно не реализованы в этом плагине - потому что это, очевидно, приводит к неопределенному результату.
Но лучше решить главную проблему и узнать причину. Что заставит людей отправлять заявку несколько раз? Одной заявки достаточно.
Давайте подумаем о причине с точки зрения пользователей.
Люди могут подавать несколько заявок, если они не уверены в том, что их отправка прошла успешно.
Например, если вы не получили ответа или реакции после нажатия кнопки отправки, то вы можете подумать, что отправка не удалась, и, возможно, захотите щелкнуть ее еще раз.
Давайте подумаем о том, как мы можем устранить первопричину вместо того, чтобы пытаться скрыть проблему поверхностно.
Если пользователи чувствуют себя неуверенно, потому что они не видят никакой реакции или ошибки, проблемы могут быть следующими:
- значок загрузчика, указывающий прогресс, не появляется.
- таблица стилей CSS, примененная к странице, делает ответ невидимым.
- внутренний процесс занимает ненормально много времени.
Если вы распознаете главную проблему и решите ее, то проблема дублирующих будет автоматически решена.