WooCommerce checkout не работает: диагностика и исправление | Мастерская — de-bor.ru

Частный web-мастер Денис Борисов
WordPress-сайтов

WooCommerce checkout не работает: диагностика и исправление

WooCommerce · 2026-06-24 · 12 мин чтения
Самый частый сценарий: клиент заполняет корзину, переходит на checkout, нажимает «Оформить заказ» — и ничего не происходит. Или вылетает ошибка. Или страница просто перезагружается. Проблема почти всегда в одном из трёх: AJAX-конфликт с кэшем, ошибка платёжного шлюза или кривой JavaScript в теме. Дальше — по шагам, что и где искать.

Почему WooCommerce checkout не работает

1. Кэш ломает AJAX

Страница checkout работает через AJAX — обновление корзины, расчёт доставки, отправка формы. Если кэширующий плагин (LiteSpeed Cache, WP Rocket, W3 Total Cache) кэширует checkout-страницу, AJAX-запросы не проходят. Кэш отдаёт статический HTML, JavaScript не выполняется, кнопка оформления молчит.

На Beget с включённым LiteSpeed Cache это встречается постоянно. На Timeweb — если включен Varnish-кэш на стороне хостинга.

2. Плагин или тема ломают JavaScript

Плагин доставки, кастомный плагин оплаты, конструктор страниц — любой из них может повесить checkout на JS-ошибке. Чаще всего грешат хлипкие темы, собранные на Visual Composer (WP Bakery) или Elementor с кучей кастомных полей.

3. SSL-сертификат на корню

Платёжные шлюзы (ЮKassa, Tinkoff, Robokassa) не работают без HTTPS. Если сертификат висит не на все поддомены, checkout просто не отправит запрос на оплату. На Reg.ru бывает что стандартный Lets Encrypt установлен, а статический контент грузится через HTTP — mixed content блокирует JS.

4. PHP memory limit

WooCommerce — тяжёлый плагин. На checkout он грузит классы корзины, доставки, оплаты, налоги. Если лимит памяти 32M или 64M, скрипт падает без видимой ошибки — просто белый экран после нажатия кнопки.

Как исправить

Шаг 1: включить режим отладки WordPress

Откройте wp-config.php (он в корне сайта) и добавьте перед строкой «That's all, stop editing!»:

define('WP_DEBUG', true);
define('WP_DEBUG_LOG', true);
define('WP_DEBUG_DISPLAY', false);

После этого откройте checkout, совершите действие, при котором он ломается, и проверьте лог:

tail -200 wp-content/debug.log

На Beget лог можно посмотреть через файловый менеджер в админке. На Timeweb — через SSH или раздел «Логи» в панели ISPmanager.

Шаг 2: исключить checkout из кэша

В зависимости от кэширующего плагина:

LiteSpeed Cache — в настройках плагина: Cache → Excludes → Do Not Cache URIs, добавить:

/checkout/
/cart/
/my-account/
/wc-api/*
/wc-ajax/*

WP Rocket — Settings → Cache → Never Cache URLs, добавить те же пути.

Встроенный кэш Beget — в панели Beget → Сайты → Кэширование → Исключить URL, указать /checkout/* и /cart/*.

Шаг 3: отключить объединение JS на checkout

Добавьте в functions.php активной темы:

add_action('wp_print_scripts', function() {
    if (function_exists('is_checkout') && is_checkout()) {
        global $wp_scripts;
        if (method_exists($wp_scripts, 'get_data')) {
        }
    }
});

Или через wp-config.php:

define('CONCATENATE_SCRIPTS', false);

Шаг 4: увеличить лимит памяти PHP

В wp-config.php:

define('WP_MEMORY_LIMIT', '256M');
define('WP_MAX_MEMORY_LIMIT', '512M');

Если не помогает — проверьте лимит в php.ini или через панель хостинга. На Reg.ru лимит меняется в разделе «Управление PHP» → «Редактор php.ini». На Timeweb — в настройках аккаунта → «PHP настройки».

Шаг 5: проверить платёжный шлюз

Зайдите в WooCommerce → Настройки → Оплата. Отключите все шлюзы кроме «Оплата при доставке». Сделайте тестовый заказ. Если прошёл — проблема в конкретном шлюзе.

Для ЮKassa проверьте:

В WooCommerce → Статус → Логи → выберите yookassa
или wp-content/uploads/wc-logs/yookassa-*.log

Для Tinkoff:

wp-content/uploads/wc-logs/tinkoff-*.log
На Beget бывает что cURL не видит корневые сертификаты. Решение: обновить CA-бандл или указать путь в wp-config.

Проверка результата

1. Консоль браузера (F12 → Console)

Перед нажатием кнопки оформления откройте консоль. Если видите красные ошибки — скопируйте их текст, это прямо укажет где проблема (обычно в имени файла и строке).

2. Сетевые запросы (F12 → Network)

Переключите фильтр на XHR. Когда нажимаете «Оформить заказ», должен быть POST-запрос к /?wc-ajax=checkout. Если его нет — JavaScript не сработал. Если статус 500 — проблема на сервере.

3. WooCommerce System Status

В админке: WooCommerce → Status → Tools. Запустите «WooCommerce transients», «Clear template cache», «Recount terms». После этого — «Create default WooCommerce pages» (если checkout страница удалена или бита).

Путь до страницы checkout:
WooCommerce → Настройки → Дополнительно → Страницы оформления заказа
— должно быть выбрано «Оформление заказа»

4. Тестовый заказ через Storefront

Временно переключите тему на Storefront (стандартная тема WooCommerce). Если checkout заработал — проблема в вашей теме. Не забудьте потом вернуть тему обратно.

Проверка пройдена, если: кнопка «Оформить заказ» отправляет AJAX, заказ создаётся в админке, приходит письмо, статус заказа не «на удержании» (hold).

Когда эти способы не сработают

Cloudflare ломает checkout

Rocket Loader, Auto Minify, Mirage — эти опции Cloudflare ломают JS на checkout. Зайдите в Cloudflare → Speed → Optimization → Rocket Loader → Off. И добавьте Page Rule: yoursite.com/checkout/* → Cache Level: Bypass, Rocket Loader: Off.

WooCommerce sessions не сохраняются

Если корзина очищается при переходе на checkout — не пишутся сессии. Проверьте wp_options на предмет _wc_session_*. Если таблица wp_woocommerce_sessions бита — запустите repair через phpMyAdmin.

Блокировка REST API хостингом

На бюджетных тарифах Timeweb и Reg.ru бывает что WAF (Web Application Firewall) блокирует POST-запросы к wc-ajax. Решение — обратиться в поддержку хостинга с просьбой открыть /wc-ajax/ для POST-запросов.

Версия PHP ниже 8.0

WooCommerce 9.x требует PHP 8.0+. Если на хостинге стоит PHP 7.4 — checkout будет падать с фатальной ошибкой. Проверить версию:

Создайте phpinfo.php с содержимым <?php phpinfo(); ?>
Откройте https://вашсайт/phpinfo.php
Ищите строку «PHP Version»

После проверки — удалите файл.

Важно: перед обновлением PHP проверьте совместимость всех плагинов с новой версией. WooCommerce 9.x работает на PHP 8.0–8.3. Elementor — с PHP 8.2 нестабилен.

Частые вопросы

После нажатия «Оформить заказ» страница просто перезагружается
Это AJAX-конфликт с кэшем. Исключите страницы checkout и cart из кэширования (Шаг 2). Если не помогло — отключите минификацию JS в кэширующем плагине.
Ошибка «Sorry, it seems that there are no available payment methods»
Платёжный шлюз не подключился. Причины: не указан API-ключ, не настроена зона доставки, у товара нет цены или включена опция «Только для определённых стран». Проверьте WooCommerce → Настройки → Доставка → Зоны доставки — к каждой зоне должен быть привязан способ оплаты.
Checkout перестал работать после обновления WooCommerce
Сбросьте кэш шаблонов: WooCommerce → Status → Tools → Clear template cache. Если не помогло — проверьте совместимость темы и плагинов в логах (wp-content/debug.log).
Корзина пустая при переходе на checkout
Проблема с сессиями WooCommerce. Откройте wp-admin/admin.php?page=wc-status&tab=tools, запустите «Clear WooCommerce transients» и «WooCommerce sessions». Если не помогло — проверьте, правильно ли настроен класс сессий в wp-config.php.
На Beget checkout работает медленно или падает по таймауту
На общих хостингах Beget лимит выполнения PHP — 30 секунд. Если шлюз или плагин доставки делает внешний запрос (API СДЭК, API ЮKassa), он может не уложиться. Увеличьте лимит через set_time_limit(60) в functions.php или настройках php.ini.
Как проверить что кэширование мешает checkout
Откройте checkout в режиме инкогнито или с добавленным query-параметром ?nocache=1. Если заработало — кэш точно виноват. Временно отключите кэширующий плагин и повторите тест.

Нужна помощь с WooCommerce?

Настраиваю интернет-магазины на WooCommerce — checkout, корзина, оплата, доставка. Пишите.

Написать в Написать в

Сопровождение и поддержка сайта

Сопровождение и поддержка сайта

WooCommerce: оплата, доставка, письма.

от 5.400 ₽/мес

Подробнее
Техническая оптимизация

Техническая оптимизация

Ускорю WooCommerce, оптимизирую код.

7.200

Подробнее

Разрабатываю WordPress-сайты

Лендинги, многостраничные сайты, интернет-магазины на WooCommerce — всё на WordPress с удобной панелью управления.

Сайт под ключ: регистрация домена и хостинга, установка WordPress, настройка шаблона и модулей.

Поддерживаю WordPress-сайты

Обновление плагинов и тем, резервное копирование, мониторинг работоспособности — сайт работает без сбоев.

Оперативное исправление ошибок, создание новых разделов, доработка функционала и наполнение контентом.

Продвигаю WordPress-сайты

SEO-оптимизация, настройка Яндекс Метрики и Вебмастера, подключение Google Search Console.

Оптимизация позволяет «поднять» сайт в поисковых выдачах, увеличить целевой трафик и привлечь новых клиентов.

Чистка от вирусов WordPress

Если сайт взломали, появился подозрительный код или спам-рассылка — найду и удалю вредоносный код, закрою уязвимости и настрою защиту от повторного заражения.

После чистки проверю все файлы и плагины, обновлю WordPress до актуальной версии и настрою автоматическое резервное копирование.

Диагностика сайта

Проверю ваш сайт по ключевым параметрам и подготовлю отчёт с рекомендациями:

  • Скорость загрузки и производительность;
  • Безопасность и уязвимости;
  • SEO-состояние и индексация;
  • Мобильная адаптация;
  • Технические ошибки и код.
Заказать диагностику
Михайлова Анастасия

Денис МАСТЕР своего дела. Вёл целый проект, работали с ним на протяжении 4х месяцев. Отзывчивый, понимающий с полуслова специалист. Стоимость услуг радует, а качество работы приводит в восторг.

Денис спасибо Вам от лица нашей строительной компании и от всего нашего персонала.

Михайлова Анастасия

Игорь Караваев

Обратился к Денису для восстановления сайта на WordPress после сбоя. Сделал, как и обещал, за сутки — сайт снова работает без ошибок. Профессионал своего дела, доходчиво объясняет, вежлив и тактичен. Однозначно рекомендую!

Игорь Караваев

Яна Веркулич

Денис, спасибо огромное за работу)) Очень тепло вспоминаю Вас и все что Вы сделали для моей работы и моего сайта.

Денис Профессионал с большой буквы, решает любые вопросы, отличный специалист))

Рекомендую к сотрудничеству, еще раз спасибо)

Яна Веркулич

Бюро Переводов

Денис оперативно и грамотно справляется со всеми поставленными задачами. Внес правки на англоязычную и русскоязычную версии сайта, учел все пожелания. Будем обращаться еще!

Бюро Переводов

Анастасия Виричева

Денис мастер своего дела, рекомендую его как специалиста.
Понимает, что нужно сделать и справляется с поставленной задачей в короткое время.

Делал сайт для салона красоты, просто и функционально.

Анастасия Виричева

Владимир

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

Денис сделал это в два счета, также расписал подробно, в чем была проблема и как она решена. На 200% доволен. Даже не хочется его рекомендовать, потому что будет постоянно занят))

Владимир

Ксения Петровская

Денис оперативно ответил и помог решить проблему, которую я даже описать нормально не могла)) Мы сами что-то накрутили с корпоративной почтой — письма то уходили, то нет, в общем всё сломали.

Денис всё починил, теперь у нас нормальная почта, домен работает, письма приходят и уходят. Цена как заявлена — оплатили по факту проверки. Спасибо большое!

Ксения Петровская

Александр Кривуля

Заказал у Дениса доработать сайт на WordPress. При этом трудно себе представлял, что сам хочу. Благодаря профессионализму Дениса и его умению всё грамотно и просто объяснять, предлагать разные варианты решений — цель была достигнута.

Умение общаться доходчиво и терпеливо с клиентами — огромный плюс. Я очень доволен. Однозначно рекомендую!

Александр Кривуля

Кондитер мания

Прекрасный специалист, ответил и устранил ошибку на сайте за пару часов, сохранила контакт, будем по необходимости обращаться. Рекомендую!

Кондитер мания

Бесплатная настройка хостинга и домена

Регистрация хостинга на 1 месяц и домена .ru/.рф на 1 год входит в стоимость разработки сайта.

Подробнее

Разрабатываю сайты для клиентов по всей России:

Показать все города