Как отключить AJAX в контактной форме WordPress

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

Почему стоит отключить AJAX в контактной форме WordPress

AJAX помогает улучшить пользовательский опыт, но не всегда работает идеально. Часто встречаются проблемы:

  • Конфликты с другими плагинами или темами.
  • Ошибки JavaScript, мешающие отправке формы.
  • Проблемы с кэшированием и отображением сообщений об ошибках.
  • Необходимость полной перезагрузки страницы для запуска определённых скриптов.

В таких случаях отключение AJAX — самый простой выход.

Типичные плагины для контактных форм и способы отключения AJAX

Рассмотрим примеры популярных плагинов и как в них отключить AJAX.

Contact Form 7

Contact Form 7 по умолчанию использует AJAX для отправки форм. Чтобы отключить AJAX, можно убрать скрипт, который делает отправку асинхронной.

Добавьте следующий код в functions.php вашей темы PremiumWP:

function premiumwp_disable_cf7_ajax() {
    if (function_exists('wpcf7_enqueue_scripts')) {
        wp_dequeue_script('contact-form-7');
        wp_deregister_script('contact-form-7');
    }
}
add_action('wp_print_scripts', 'premiumwp_disable_cf7_ajax', 100);

Однако этот способ отключает весь скрипт плагина, что может привести к неработоспособности формы. Более корректный метод — переопределить JavaScript, отключив AJAX-отправку:

function premiumwp_cf7_disable_ajax_script() {
    wp_add_inline_script('contact-form-7', 'document.addEventListener( "wpcf7invalid", function(event) { event.preventDefault(); }, false );', 'after');
}
add_action('wp_enqueue_scripts', 'premiumwp_cf7_disable_ajax_script');

Но чаще рекомендуют использовать хук JavaScript, чтобы отменить AJAX-отправку, либо заменить форму на простую HTML-форму.

WPForms

В WPForms отключить AJAX просто: в настройках формы есть опция «Disable AJAX form submission» (Отключить отправку через AJAX). Просто активируйте её.

Gravity Forms

Для Gravity Forms AJAX отключается через настройку каждой формы: в разделе «Form Settings» уберите галочку «Enable AJAX».

Ручное отключение AJAX в контактной форме WordPress

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

Пример универсального подхода для Contact Form 7: отключить стандартный скрипт AJAX и заменить его на простую отправку формы.

function premiumwp_replace_cf7_ajax() {
    if (wp_script_is('contact-form-7', 'enqueued')) {
        wp_dequeue_script('contact-form-7');
        wp_deregister_script('contact-form-7');
    }
    wp_enqueue_script('premiumwp-cf7-noajax', get_template_directory_uri() . '/js/cf7-noajax.js', ['jquery'], '1.0', true);
}
add_action('wp_enqueue_scripts', 'premiumwp_replace_cf7_ajax', 99);

В файле cf7-noajax.js можно прописать простой скрипт для отправки формы с перезагрузкой страницы:

jQuery(document).ready(function($) {
  $('form.wpcf7-form').attr('onsubmit', 'return true;');
});

Советы по тестированию и отладке после отключения AJAX

После отключения AJAX обязательно проверьте:

  • Форма корректно отправляется и данные доходят на почту.
  • Отображаются сообщения об ошибках и успешной отправке.
  • Совместимость с другими скриптами и плагинами.
  • Отсутствие конфликтов в консоли браузера.

Для ускорения решения проблем с формами рекомендуем использовать плагин Expert Review — он поможет автоматически анализировать и устранять ошибки на сайте.

Альтернативные варианты: использование плагинов без AJAX

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

  • Contact Form by WPForms — с простой настройкой отключения AJAX.
  • Formidable Forms — позволяет детально настраивать логику отправки.
  • Caldera Forms — даёт возможность гибко управлять скриптами.

Выбор плагина зависит от ваших задач и необходимости интеграции с другими сервисами.

Выводы по отключению AJAX в контактных формах WordPress

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

Используйте приведённые выше методы и примеры кода с приставкой premiumwp в названиях функций для удобства поддержки и чтобы не было конфликтов с другими плагинами.

Подробнее о плагинах и инструментах для WordPress можно узнать на WPShop.ru.

Оптимизация загрузки и отображения библиотек JS и CSS в WordPress
25.12.2025
Как сделать автоматический редирект при изменении ссылки в WordPress
30.01.2026
Как добавить поддержку AJAX в формах обратной связи WordPress
18.02.2026
Как настроить обработку загрузки и проверки файлов в WordPress
24.11.2025
Как создать автоматический импорт пользовательского контента в WordPress
05.04.2026