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

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

Ниже — рабочие варианты, как это сделать, что проверить после внедрения и где чаще всего ломается логика купонов, доставки и мини-корзины.

Когда корзину лучше убрать, а когда не стоит

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

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

Диагностика: что именно сейчас мешает перейти к оформлению

Перед правкой кода стоит понять, где именно пользователь застревает. В WooCommerce проблема часто не в самой корзине, а в одном из связанных элементов: кнопке Добавить в корзину, мини-корзине в шапке, AJAX-обновлении, плагине доставки или кастомной теме.

Проверьте эти точки

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

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

Пошаговое решение: перенаправлять покупателя сразу на checkout

Самый простой и предсказуемый вариант — отправлять пользователя на страницу оформления заказа сразу после добавления товара в корзину. Для этого в WooCommerce есть фильтр woocommerce_add_to_cart_redirect.

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

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

Если хотите убрать саму страницу корзины из навигации и при этом не ломать внутренние ссылки, используйте более мягкий вариант: перенаправляйте только с URL корзины на checkout.

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

Такой способ полезен, если корзина нужна технически, но вы не хотите показывать её пользователю. Однако перед включением обязательно проверьте, не используется ли корзина в каких-то сценариях плагинов: например, в отложенной оплате, сохранении набора товаров или в кастомных промо-страницах.

Если нужно убрать только кнопку перехода в корзину

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

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

<a href="<?php echo esc_url( wc_get_checkout_url() ); ?>">Перейти к оплате</a>

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

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

После правки не ограничивайтесь ручным кликом по кнопке Добавить в корзину. Нужно проверить весь путь покупки, иначе проблемы всплывут уже на реальном заказе.

Мини-чек-лист проверки

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

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

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

Редирект ломает AJAX-кнопки

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

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

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

Доставка не пересчитывается

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

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

Это обычно значит, что редирект добавлен только для кнопки Добавить в корзину, но не для прямого URL. Тогда нужен второй слой — перенаправление через template_redirect.

Безопасность и производительность

Если решение делаете кодом, добавляйте его в дочернюю тему или в небольшой mu-plugin, а не в файл основной темы. Так вы не потеряете правку после обновления.

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

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

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

Что делать, если нужен гибридный сценарий

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

<?php
add_filter( 'woocommerce_add_to_cart_redirect', function( $url ) {
    if ( isset( $_REQUEST['add-to-cart'] ) ) {
        $product_id = absint( $_REQUEST['add-to-cart'] );
        $product    = wc_get_product( $product_id );

        if ( $product && $product->is_virtual() ) {
            return wc_get_checkout_url();
        }
    }

    return $url;
} );

Это пример именно для виртуальных товаров. Если у вас другая логика — например, отдельная категория или конкретный набор SKU — проверку нужно адаптировать под ваш каталог.

Как понять, что решение действительно работает

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

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

Как создать собственный шорткод в WordPress
06.11.2025
Как проверить и использовать активные CRON задачи в WordPress
05.02.2026
Как исправить ошибку 503 в WordPress после обновления или настройки сервера
25.07.2026
Как создать собственный виджет в WordPress
03.12.2025
Как создать адаптивный блок с видео в WordPress с помощью OmniVideo
08.02.2026