wpforms.ru wordpress WPForms.ru

Как отключить AJAX-отправку в WPForms и отладить задержку после сабмита

Если форма WPForms визуально отправляется, но сообщение об успехе появляется с задержкой, а в консоли или на сервере видно лишние запросы, сначала стоит проверить, действительно ли проблема в AJAX-режиме. В реальных проектах задержка часто появляется не из-за самой формы, а из-за конфликта с кэшем, тяжелых скриптов темы, сторонней валидации или медленного ответа сервера. Но для диагностики полезно уметь быстро отключить AJAX и сравнить поведение.

Когда AJAX в WPForms мешает, а не помогает

AJAX-отправка удобна, пока страница не перегружена скриптами и не вмешиваются оптимизаторы. На практике проблемы проявляются так:

  • после нажатия кнопки отправки форма «думает» несколько секунд, хотя письмо приходит;
  • сообщение об успехе не показывается, но запись в WPForms создается;
  • после обновления страницы пользователь видит повторную попытку отправки;
  • на странице с формой есть lazy load, минификация JS или отложенная загрузка скриптов;
  • в консоли браузера появляются ошибки, связанные с jQuery, wpforms, recaptcha или сторонними виджетами.

Если проблема воспроизводится только на одной странице, не спешите менять настройки глобально. Сначала проверьте, не ломает ли сценарий конкретный шаблон, плагин кэша или код темы.

Диагностика: что проверить до правки кода

Перед изменениями полезно зафиксировать исходное состояние. Это экономит время, когда нужно понять, что именно сработало.

Быстрый чек-лист

  • откройте страницу с формой в режиме инкогнито;
  • временно отключите оптимизацию JS в плагине кэша, если она есть;
  • посмотрите Network в DevTools: есть ли запросы к admin-ajax.php или REST-эндпоинтам WPForms;
  • проверьте, не дублируется ли кнопка отправки из-за кастомной верстки;
  • сравните поведение при отключении других плагинов, кроме WPForms.

Если задержка исчезает после отключения оптимизации JavaScript, проблема не в форме как таковой. Тогда отключение AJAX может быть временным обходным путем, а не финальным решением.

Как отключить AJAX-отправку в WPForms

У WPForms есть настройка на уровне формы. Это самый безопасный вариант: вы меняете поведение только там, где есть проблема, а не на всем сайте.

В админке формы

Откройте нужную форму в конструкторе WPForms и проверьте настройки отправки. В зависимости от версии интерфейса опция может называться Enable AJAX form submission или быть доступна в общих настройках формы. Если AJAX включен, отключите его и сохраните форму.

После этого форма будет отправляться обычным POST-запросом с перезагрузкой страницы. Это часто убирает конфликт с оптимизаторами и упрощает отладку.

Через фильтр для точечного отключения

Если нужно отключить AJAX только для одной формы или для группы форм, удобнее сделать это кодом. Ниже пример, который отключает AJAX для конкретной формы по ID.

<?php
add_filter( 'wpforms_frontend_form_data', function( $form_data, $form ) {
	if ( ! empty( $form['id'] ) && (int) $form['id'] === 123 ) {
		$form_data['ajax_submit'] = false;
	}

	return $form_data;
}, 10, 2 );

Замените 123 на ID вашей формы. Этот вариант полезен, когда на сайте несколько форм и отключать AJAX глобально не хочется.

Если нужен обход через шорткод

Иногда проще отключить AJAX прямо в шорткоде формы на странице. WPForms поддерживает параметры шорткода, и это удобно для точечной правки в контенте.

[wpforms id="123" ajax="false"]

Такой способ хорош для посадочных страниц и разовых сценариев, когда форма вставлена вручную и не управляется шаблоном.

Сравнение подходов: админка, код или шорткод

СпособГде применятьПлюсМинус
Настройка в формеОдна форма, без кодаБыстро и безопасноНе подходит для массового управления
Фильтр в functions.phpНесколько форм, нужен контрольТочечное отключениеНужно аккуратно следить за ID
Параметр шорткодаОдна страница или шаблонНе требует правки PHPЛегко забыть при копировании контента

Как отладить задержку после сабмита, если AJAX уже отключен

Если форма стала отправляться без AJAX, но задержка осталась, значит узкое место в другом месте цепочки. Обычно это один из трех участков: сервер, почтовая отправка или сторонний код после сабмита.

Проверяем серверный ответ

Откройте DevTools, вкладку Network, отправьте форму и посмотрите время ответа. Если запрос к странице или admin-ajax.php уходит в долгий pending, проблема может быть в PHP-обработке, тяжелых хуках или медленной базе данных.

Для проверки полезно временно отключить все кастомные обработчики, которые срабатывают после отправки формы: интеграции, вебхуки, запись в CRM, дополнительные запросы к внешним API.

Проверяем почту и фоновые задачи

Если письмо приходит с задержкой, а сама форма уже показывает успех, проблема может быть в почтовой доставке. В таком случае стоит проверить, как сайт отправляет почту: через wp_mail() или через SMTP-плагин. Для диагностики полезно включить логирование почты, но не держать его постоянно включенным на продакшене.

Пошаговое решение для типового конфликта

  1. Сделайте копию страницы или проверьте на staging.
  2. Отключите AJAX у проблемной формы.
  3. Очистите кэш страницы и кэш плагина оптимизации.
  4. Проверьте отправку в инкогнито без автозаполнения браузера и без расширений.
  5. Сравните время ответа в Network до и после правки.
  6. Если задержка ушла, оставьте AJAX выключенным только для этой формы.

Если после отключения AJAX проблема исчезла, не возвращайте его обратно «для красоты». Лучше оставить более стабильный сценарий, чем снова ловить конфликт на обновлении плагинов или темы.

Проверка результата после внедрения

Проверять нужно не только визуально. Важно убедиться, что форма реально работает в нужном сценарии.

  • форма отправляется с первого раза;
  • сообщение об успехе появляется без зависания;
  • запись появляется в WPForms Entries, если она включена;
  • письмо приходит на нужный адрес;
  • в консоли браузера нет новых ошибок;
  • страница не делает повторный submit после обновления.

Хорошая практика — протестировать форму в трех условиях: обычный браузер, инкогнито и мобильное устройство. Если проблема проявляется только в одном из них, ищите не в WPForms, а в окружении.

Частые ошибки и как их исправить

Отключили AJAX глобально и сломали другие формы

Так бывает, когда правят не конкретную форму, а весь шаблон или общий фильтр без проверки ID. Исправление простое: ограничьте условие только нужной формой.

Не очистили кэш после изменения

Если страница отдается из кэша, вы можете смотреть на старую версию формы и делать ложные выводы. После правки очистите кэш плагина, серверный кэш и CDN, если он используется.

Сторонний плагин снова включает оптимизацию JS

Иногда оптимизатор после обновления возвращает отложенную загрузку скриптов. Проверьте исключения для скриптов WPForms и повторите тест. Если исключения не помогают, отключите оптимизацию точечно для страницы с формой.

Путают задержку отправки с задержкой письма

Пользователь видит, что форма отправилась, но письмо приходит позже. Это разные проблемы. Сначала проверьте, когда появляется сообщение об успехе, и только потом смотрите почтовую доставку.

Что делать с производительностью и безопасностью

Если вы отключаете AJAX ради стабильности, это не значит, что можно игнорировать остальные настройки. Наоборот, стоит убрать лишние точки отказа.

  • не держите включенными тяжелые JS-оптимизации на странице формы без необходимости;
  • не добавляйте лишние обработчики в functions.php, если можно решить задачу настройкой формы;
  • проверяйте, не отправляет ли форма лишние данные во внешние сервисы без нужды;
  • если форма публичная, оставьте антиспам-защиту, даже если AJAX выключен;
  • не редактируйте ядро плагина — обновление все перетрет.

Если на сайте много технических дублей, мусорных страниц и лишних скриптов, полезно сначала навести порядок в общей оптимизации WordPress. В таких случаях отдельные инструменты вроде Clearfy Pro могут помочь убрать часть лишнего шума, но только если вы понимаете, что именно отключаете и зачем.

Главная идея простая: AJAX в WPForms — это не обязательное условие работы формы. Если он мешает стабильности, отключайте его точечно, проверяйте цепочку отправки и фиксируйте результат на реальном сценарии, а не только по внешнему виду страницы.

×

AI-плагин

WPGPT
Сам создает статьи для вашего сайта WordPress

SEO и мета-теги

Парсинг конкурентов

Изображения

Комментарии

Подробнее