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

|

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

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

Не стоит отключать корзину «на всякий случай». Решение оправдано, если:

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

Диагностика: что именно сейчас происходит

Перед правкой проверьте, где именно возникает лишний переход. В WooCommerce это может быть один из трех вариантов:

  1. после нажатия «Добавить в корзину» открывается страница корзины;
  2. кнопка «Перейти в корзину» показывается в уведомлении и уводит пользователя;
  3. мини-корзина работает, но после AJAX-добавления все равно идет редирект.

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

Быстрая проверка в браузере:

Как убрать корзину из сценария покупки

Вариант 1. Перенаправлять сразу на checkout

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

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

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

Вариант 2. Скрыть ссылку на корзину в уведомлении

После добавления товара WooCommerce часто показывает сообщение с ссылкой на корзину. Если вы хотите убрать лишний переход, можно изменить текст уведомления через фильтр wc_add_to_cart_message_html.

add_filter( 'wc_add_to_cart_message_html', function( $message, $products ) {
    return sprintf(
        '<a href="%s" tabindex="1" class="button wc-forward">%s</a> %s',
        esc_url( wc_get_checkout_url() ),
        esc_html__( 'Перейти к оформлению', 'woocommerce' ),
        esc_html__( 'Товар добавлен в корзину.', 'woocommerce' )
    );
}, 10, 2 );

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

Вариант 3. Убрать страницу корзины из навигации

Если корзина больше не нужна как отдельная страница, удалите ее из меню и проверьте, не ссылаются ли на нее:

Полностью отключать страницу корзины без проверки шаблонов не стоит: некоторые темы и плагины ожидают, что URL корзины существует, даже если пользователь туда почти не попадает.

Сравнение подходов

ПодходЧто делаетПлюсМинус
Фильтр редиректаСразу ведет на checkoutБыстро и прозрачноНужно проверить AJAX и тему
Правка уведомленияМеняет ссылку в сообщенииМягкое изменение UXНе убирает корзину полностью
Удаление корзины из менюСкрывает лишний путьУменьшает путаницуНе решает редирект сам по себе

Пошаговая настройка без поломок

1. Добавьте код в дочернюю тему или мини-плагин

Не вставляйте такой код в файл родительской темы: при обновлении он исчезнет. Для точечной правки лучше использовать дочернюю тему или небольшой mu-plugin.

<?php
/**
 * Plugin Name: WC Direct Checkout Redirect
 */

add_filter( 'woocommerce_add_to_cart_redirect', function( $url ) {
    if ( is_admin() ) {
        return $url;
    }

    return wc_get_checkout_url();
} );

Если вы используете мини-плагин, сохраните файл в wp-content/mu-plugins/ или в обычном plugins и активируйте его.

2. Проверьте, не конфликтует ли тема

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

3. Убедитесь, что checkout не требует лишних шагов

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

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

После внедрения выполните короткий тест:

  1. Откройте магазин в приватном окне.
  2. Добавьте товар в корзину со страницы товара и из каталога.
  3. Проверьте, что после добавления открывается checkout, а не cart.
  4. Убедитесь, что товар реально попал в заказ и количество сохранилось.
  5. Проверьте мини-корзину и уведомления на мобильном.

Дополнительно посмотрите, не осталась ли старая ссылка на корзину в меню или в блоках темы. Если пользователь все еще может попасть на /cart/, это не ошибка, но сценарий уже не будет полностью «без корзины».

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

Редирект не срабатывает

Обычно причина в том, что товар добавляется через AJAX или тема использует собственную кнопку. Проверьте, не переопределяет ли шаблон стандартный WooCommerce add to cart. Иногда помогает перенос фильтра в мини-плагин и тест без кэша.

После добавления товара появляется ошибка в консоли

Часто это связано не с редиректом, а с JS мини-корзины или конфликтом скриптов темы. Откройте DevTools и посмотрите, нет ли ошибок в файлах WooCommerce fragments, cart script или в кастомном скрипте темы.

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

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

Ссылка на корзину все равно видна

Это не баг редиректа. Ссылка может быть в уведомлении, меню, мини-корзине или в шаблоне темы. Ищите источник по HTML-коду страницы, а не только в настройках WooCommerce.

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

Такая правка сама по себе не тяжелая, но есть несколько практических моментов:

Если нужно не просто убрать корзину, а еще и почистить лишние элементы WooCommerce, полезно посмотреть на плагины для оптимизации и удаления дублей, например Clearfy Pro: https://wpshop.ru/plugins/clearfy. Но даже с плагином логику редиректа лучше держать под контролем в коде, чтобы понимать, что именно происходит после добавления товара.

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

Если сценарий «сразу на checkout» прижился, не забудьте зафиксировать это в проектной документации. Через пару месяцев кто-то из команды может снова добавить ссылку на корзину в шапку или в шаблон уведомлений и вернуть лишний шаг. Для магазинов с узким ассортиментом это особенно заметно: один лишний клик часто ломает весь смысл упрощенного пути покупки.

Как сделать многоязычный сайт на WordPress без плагинов
30.11.2025
Как создать автоматические отзывы в WordPress с помощью Expert Review
06.01.2026
Как настроить автоматические отчёты о просмотрах в WordPress с примерами кода
08.04.2026
Как создать автоматические решения для очистки базы данных WordPress
10.01.2026
Как изменить количество постов в выводах WordPress без плагинов
03.04.2026
×

AI-плагин от WPShop.ru

анализирует конкурентов

пишет статьи

готовит SEO

генерирует изображения

и еще кое-что...
WPGPT
Плагин, который наполняет ваш сайт WordPress
Узнать больше