Как отключить AJAX при оформлении заказа в WooCommerce для ускорения процесса

Диагностика проблемы: почему стоит отключить AJAX в оформлении заказа WooCommerce

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

Пошаговое решение: как отключить AJAX оформления заказа

1. Отключение AJAX в настройках WooCommerce (если доступно)

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

2. Отключение AJAX через код в functions.php вашей темы

Добавьте следующий код в файл functions.php вашей дочерней темы или в файл кастомного плагина:

add_filter('woocommerce_checkout_update_order_review_expired', '__return_true');

function disable_woocommerce_checkout_ajax() {
    if (is_checkout()) {
        wp_dequeue_script('wc-checkout');
        wp_dequeue_script('wc-cart');
    }
}
add_action('wp_enqueue_scripts', 'disable_woocommerce_checkout_ajax', 100);

Этот код отключит основной скрипт AJAX оформления заказа wc-checkout, предотвращая асинхронные запросы.

3. Альтернативный способ — отключить AJAX для конкретных полей

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

add_filter('woocommerce_checkout_fields', 'disable_ajax_for_checkout_fields');
function disable_ajax_for_checkout_fields($fields) {
    foreach ($fields as &$fieldset) {
        foreach ($fieldset as &$field) {
            $field['validate'] = array_filter($field['validate'], function($rule) {
                return $rule !== 'ajax';
            });
        }
    }
    return $fields;
}

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

  • Откройте страницу оформления заказа в режиме инкогнито.
  • Откройте инструменты разработчика (F12) в браузере и перейдите на вкладку Network.
  • Заполните форму и нажмите кнопку «Оформить заказ».
  • Проверьте, что при отправке не происходит AJAX-запросов (admin-ajax.php или wc-ajax=checkout).
  • Убедитесь, что страница перезагружается и данные отправляются обычным POST-запросом.

Частые ошибки при отключении AJAX в WooCommerce и как их исправить

  • Ошибка: страница оформления заказа не обновляется после изменений.
    Причина: другие плагины или тема зависят от AJAX-скриптов.
    Решение: временно отключите сторонние плагины и проверьте конфликт, либо отключайте AJAX выборочно.
  • Ошибка: валидация формы перестала работать.
    Причина: отключение AJAX может убрать динамическую проверку.
    Решение: добавьте серверную валидацию, обязательно проверьте работу PHP-валидации в WooCommerce.
  • Ошибка: оформление заказа выдает ошибку 400 или 403.
    Причина: конфликт nonce или отсутствие AJAX-запросов.
    Решение: очистите кэш браузера и сайта, проверьте правильность nonce в форме.

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

  • Обязательно обеспечьте серверную проверку всех данных оформления заказа — отключение AJAX убирает клиентскую динамическую проверку.
  • Используйте кеширование страниц оформления заказа с осторожностью — WooCommerce не рекомендует кешировать страницу checkout.
  • Для ускорения загрузки используйте современные методы оптимизации — например, минимизацию и отложенную загрузку скриптов.

Сравнение способов отключения AJAX оформления заказа

СпособПлюсыМинусыКогда использовать
Полное отключение скрипта wc-checkoutМаксимальное отключение AJAX, простой кодПотеря динамической валидации и отзывчивости формыЕсли AJAX вызывает ошибки или тормозит сайт
Отключение AJAX-валидации для отдельных полейСохраняется частичная динамичность, меньше конфликтовНе решает всех проблем с AJAXЕсли проблемы только с валидацией полей
Отключение AJAX через плагины оптимизацииИнтуитивное управление, дополнительные настройкиМожет добавить нагрузку, зависит от качества плагинаДля пользователей без навыков кодинга
Как избежать остановки работы WordPress при перегрузке сервера
27.03.2026
Как отключить AJAX в WooCommerce для ускорения оформления заказа
04.05.2026
Как проверять и использовать REST API в WordPress: практическое руководство
06.11.2025
Как разделить длинный пост на страницы в WordPress
14.01.2026
Как удалить неиспользуемые таксономии в WordPress
23.03.2026