Сценарий типичный: в магазине один товар, наборы, цифровые продукты или быстрый заказ, а страница корзины только добавляет лишний шаг. Покупатель нажал «Купить» — и должен сразу попасть на оформление заказа. В WooCommerce это можно сделать без тяжелых плагинов, но важно не ограничиться редиректом: нужно проверить ссылки в каталоге, мини-корзину, купоны, доставку и сценарии, где корзина все же нужна.
Когда это решение действительно уместно
Убирать корзину имеет смысл не всегда. Если у вас сложная покупка с несколькими позициями, подбором доставки, промокодами и отложенным возвратом к заказу, корзина может быть полезной. Но если покупатель обычно берет один товар или оформляет заказ сразу после выбора вариации, лишняя промежуточная страница только снижает конверсию.
Подходит для таких сценариев
- один товар на заказ или очень короткий путь покупки;
- цифровые товары без сложной логистики;
- услуги с фиксированной ценой;
- лендинги с кнопкой «Купить сейчас»;
- магазины, где корзина используется редко и не нужна как отдельный этап.
Диагностика: что именно сейчас происходит в магазине
Перед изменениями проверьте, где у вас уже используется корзина. Часто проблема не в самой странице /cart/, а в том, что на нее ведут кнопки в каталоге, виджет мини-корзины, сторонняя тема или плагин быстрых покупок. Если просто удалить страницу, часть сценариев начнет возвращать 404 или ломать AJAX-обновления.
Откройте магазин в режиме инкогнито и пройдите путь покупателя:
- добавьте товар в корзину из каталога;
- проверьте, куда ведет кнопка в карточке товара;
- посмотрите, есть ли переход в корзину после добавления;
- попробуйте применить купон;
- проверьте оформление заказа с доставкой и самовывозом, если они включены.
Если корзина нужна только как технический шаг, ее можно скрыть из обычного пользовательского пути, но оставить доступной для внутренних ссылок и системных сценариев.
Пошаговое решение без лишних плагинов
Самый надежный способ — перенаправлять пользователя сразу на checkout после добавления товара в корзину. Для этого используйте стандартный фильтр WooCommerce woocommerce_add_to_cart_redirect. Он работает предсказуемо и не требует вмешательства в ядро.
add_filter( 'woocommerce_add_to_cart_redirect', function( $url ) {
return wc_get_checkout_url();
} );Этот вариант переводит покупателя на страницу оформления заказа после добавления товара. Но если у вас есть AJAX-кнопки «В корзину», часть тем может продолжать показывать мини-корзину или всплывающий блок. Тогда нужно дополнительно проверить поведение темы и плагинов, которые перехватывают добавление в корзину.
Если нужно оставить кнопку «В корзину», но убрать ссылку на корзину
Иногда достаточно не удалять корзину полностью, а просто убрать переходы в нее из интерфейса. Например, в шапке сайта, в меню или в блоке мини-корзины. Это лучше делать на уровне темы или через настройки, если они есть. Если правите кодом, не трогайте шаблоны WooCommerce без необходимости — проще изменить ссылки в теме.
add_filter( 'woocommerce_get_cart_url', function() {
return wc_get_checkout_url();
} );Такой подход заменяет URL корзины на checkout. Он полезен, если в теме или плагине уже жестко используется функция wc_get_cart_url(). Но применять его стоит аккуратно: если где-то нужен именно доступ к корзине для возврата к покупкам, вы его тоже перенаправите.
Когда лучше не подменять URL корзины
Если у вас есть:
- многошаговый checkout;
- купоны, которые покупатели часто вводят до оформления;
- дополнительные товары в корзине;
- сценарии B2B с согласованием заказа;
то лучше не ломать URL корзины глобально. В этом случае безопаснее оставить корзину как страницу, но изменить кнопки покупки в каталоге и карточке товара.
Сравнение подходов: плагин, код или частичная настройка
| Подход | Что делает | Плюсы | Минусы |
|---|---|---|---|
| Код через фильтр | Редиректит после добавления в корзину на checkout | Минимум зависимостей, легко проверить | Нужно аккуратно тестировать тему и AJAX |
| Настройки темы/плагина | Скрывает корзину или меняет кнопки | Без правки кода | Зависит от конкретной темы, может быть ограничено |
| Полное удаление корзины | Убирает страницу и ссылки на нее | Максимально короткий путь | Риск сломать купоны, возврат к покупкам и сторонние сценарии |
Проверка результата после внедрения
После правки не ограничивайтесь визуальной проверкой. Нужно пройти реальные сценарии, иначе редирект может работать только для простого товара и ломаться на вариациях или AJAX-кнопках.
- Добавьте простой товар и убедитесь, что попадаете на checkout.
- Добавьте вариативный товар и проверьте, что выбранная вариация сохраняется.
- Проверьте товар со скидкой и купоном.
- Откройте сайт с мобильного и убедитесь, что мини-корзина не ведет в тупик.
- Посмотрите, не остались ли ссылки на
/cart/в меню, футере и шаблонах.
Если у вас включен кэш, очистите его после изменений. Иначе вы можете тестировать старую версию страницы и сделать ложный вывод, что редирект не работает.
Что считать успешным результатом
Покупатель после нажатия «Купить» или «Добавить в корзину» сразу попадает на оформление заказа, а все данные товара, цена, количество и выбранные опции сохраняются. При этом checkout открывается без циклических редиректов и без ошибок в консоли браузера.
Частые ошибки и как их исправить
Редирект срабатывает только для части товаров
Обычно это связано с тем, что тема использует собственную AJAX-логику или отдельную кнопку «Купить сейчас». Проверьте, не переопределяет ли тема шаблоны WooCommerce и не подключен ли плагин ускоренного заказа. Если да, ищите настройки именно там.
Покупатель попадает на checkout, но корзина пустая
Такое бывает, если редирект выполняется слишком рано или конфликтует с кэшем/JS. Проверьте, что товар действительно добавляется в корзину до перенаправления. Для диагностики откройте инструменты разработчика и посмотрите сетевые запросы после клика по кнопке.
После удаления корзины ломаются купоны
Купоны в WooCommerce часто ожидают, что пользователь сможет вернуться в корзину и изменить состав заказа. Если вы полностью убрали страницу, оставьте хотя бы внутренний доступ для админов и тестовых сценариев. Полное удаление без анализа процесса оформления — частая причина жалоб от клиентов.
Меню и хлебные крошки ведут на несуществующую страницу
После смены логики не забудьте проверить навигацию. Если в меню осталась ссылка на старую корзину, пользователь будет получать 404 или попадать на пустую страницу. Исправляется вручную в меню, виджетах и шаблонах темы.
Практические советы по безопасности и производительности
Если вы вносите код в functions.php, лучше делать это в дочерней теме или через небольшой mu-plugin. Так изменения не потеряются после обновления темы. Не ставьте отдельный плагин только ради одного редиректа, если задача решается несколькими строками кода.
Для магазинов с большим количеством правок полезно держать техническую чистоту: отключать лишние дубли, неиспользуемые скрипты и мусорные элементы интерфейса. Если вы уже используете Clearfy Pro, часть таких задач можно закрыть настройками, но сам редирект на checkout все равно лучше реализовать и проверить отдельно.
// Пример: безопаснее хранить логику в небольшом mu-plugin
// wp-content/mu-plugins/checkout-redirect.php
<?php
add_filter( 'woocommerce_add_to_cart_redirect', function( $url ) {
return wc_get_checkout_url();
} );Такой вариант проще сопровождать: код не зависит от активной темы и не исчезнет после ее смены.
Если нужен быстрый запуск без разработки
Когда времени на код нет, ищите в теме или в настройках WooCommerce опции вроде «Redirect to checkout after add to cart» или «Skip cart page». Но перед включением проверьте, как это влияет на вариативные товары, купоны и мобильный интерфейс. Если тема не дает нужной гибкости, кодовый вариант обычно надежнее.
Для магазинов на WooCommerce с коротким путем покупки это одна из тех доработок, которые легко сделать, но так же легко сломать, если не пройти весь сценарий руками. Поэтому после внедрения тестируйте не только кнопку, но и весь путь от карточки товара до успешного оформления заказа.