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

Промежуточная корзина в WooCommerce часто нужна только формально: покупатель добавляет один товар, а потом делает лишний клик до оформления заказа. На небольших магазинах это раздражает, а в каталоге с быстрыми покупками — просто мешает. Ниже разберём, как убрать корзину, перенаправлять пользователя сразу на checkout и не получить побочные эффекты в купонах, мини-корзине и кэшировании.

Когда это действительно нужно

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

Типичный сценарий проблемы

  • покупатель нажимает «В корзину», потом ещё раз открывает корзину вручную;
  • на мобильных устройствах лишний экран особенно заметен;
  • часть пользователей бросает заказ между корзиной и checkout;
  • в корзине нет полезной логики, кроме кнопки «Оформить заказ».

Диагностика: что именно мешает убрать корзину

Перед правками проверьте, как у вас сейчас устроен путь покупки. В WooCommerce есть несколько мест, которые могут конфликтовать с редиректом:

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

Быстрая проверка: добавьте товар в корзину, откройте /cart/ и посмотрите, есть ли там что-то кроме стандартной формы WooCommerce. Если тема или плагин уже переопределили шаблон корзины, сначала проверьте именно их.

Варианты решения: плагин, код или компромисс

ПодходЧто делаетПлюсыМинусы
ПлагинУбирает корзину и настраивает редиректБыстро, без кодаЛишняя зависимость, не всегда гибко
Код в теме или мини-плагинеРедиректит корзину на checkout и меняет поведение ссылокКонтроль, меньше лишнегоНужно тестировать после обновлений
КомпромиссОставляет корзину, но делает её почти невидимойМеньше риска сломать сценарииНе убирает шаг полностью

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

Пошаговое решение через код

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

1. Редирект с корзины на checkout

<?php
/**
 * Plugin Name: WC Skip Cart Redirect
 */

if ( ! defined( 'ABSPATH' ) ) {
    exit;
}

add_action( 'template_redirect', function () {
    if ( function_exists( 'is_cart' ) && is_cart() && ! is_admin() ) {
        wp_safe_redirect( wc_get_checkout_url() );
        exit;
    }
} );

Этот код лучше положить не в functions.php, а в отдельный мини-плагин. Тогда логика не исчезнет при смене темы.

2. Перенаправление сразу после добавления товара

Если вы хотите убрать даже промежуточный шаг после клика по кнопке «В корзину», можно включить редирект на checkout после добавления товара. Это удобно для магазинов с одним товаром в заказе или простым ассортиментом.

<?php
add_filter( 'woocommerce_add_to_cart_redirect', function( $url ) {
    return wc_get_checkout_url();
} );

Но здесь есть нюанс: если покупатель добавляет несколько товаров подряд, он будет каждый раз попадать на checkout. Для каталога с множественным выбором это уже неудобно.

3. Убрать ссылку на корзину из мини-корзины или меню

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

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

Что проверить после внедрения

После правки не ограничивайтесь открытием главной страницы. Проверьте весь путь покупки в реальном сценарии:

  • добавление товара в корзину с карточки товара;
  • переход на /cart/ вручную;
  • работу кнопки «Оформить заказ»;
  • применение купона на checkout;
  • поведение на мобильном устройстве;
  • работу после очистки кэша сайта и браузера.

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

Признаки, что всё работает правильно

  • страница /cart/ не открывается как отдельный шаг;
  • покупатель попадает сразу на /checkout/;
  • товар остаётся в сессии WooCommerce;
  • купоны и доставка рассчитываются на checkout без ошибок;
  • в мини-корзине нет ссылки, ведущей в тупик.

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

Редирект зацикливается

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

Купоны перестали применяться

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

AJAX-добавление в корзину ведёт себя странно

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

Страница корзины всё ещё доступна

Редирект не скрывает сам URL. Если вам нужно полностью убрать корзину из навигации, дополнительно удалите ссылки на неё из меню, шапки и блоков темы. Иначе пользователь всё равно найдёт старый путь.

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

Редирект сам по себе не тяжёлый, но в WooCommerce важно не ломать кэширование и сессии:

  • не кэшируйте /cart/ и /checkout/;
  • проверьте, что cookies WooCommerce не режутся CDN;
  • не вставляйте редирект в шаблон страницы, если можно сделать его через template_redirect;
  • если используете кастомный плагин, держите код минимальным и без лишних зависимостей.

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

Мини-чек-лист перед публикацией

  • проверили редирект с /cart/;
  • проверили добавление товара в корзину;
  • проверили купон на checkout;
  • исключили checkout из кэша;
  • убрали старые ссылки на корзину из меню и шапки;
  • протестировали на мобильном и в приватном окне.

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

Как отключить XML Sitemap в WordPress без плагинов и не сломать индексацию
22.08.2026
Создать Custom Post Type в WordPress: пошаговое руководство
25.11.2025
Как автоматически удалять неиспользуемые медиа файлы в WordPress
26.02.2026
Как использовать хуки и фильтры WordPress для автоматизации задач
25.01.2026
Как настроить robots.txt в WordPress, чтобы закрыть дубли и служебные страницы
15.08.2026