WooCommerce: как удалить кнопку корзины с сайта без плагинов

Диагностика проблемы: зачем удалять кнопку корзины из меню WooCommerce

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

Где появляется кнопка корзины в WooCommerce и как ее найти

Кнопка корзины чаще всего выводится:

  • через виджет WooCommerce Cart;
  • через функцию woocommerce_cart_link() в шаблонах темы;
  • через меню, если тема добавляет корзину автоматически;
  • через хуки, например wp_nav_menu_items или wp_nav_menu.

Для точного определения места вывода нужно:

  1. Открыть исходный код страницы и найти HTML-код кнопки корзины (например, <a class="cart-contents"> или .woocommerce-cart).
  2. Посмотреть в файлах темы (header.php, functions.php, template-parts/menu.php) вызовы woocommerce_cart_link() или виджеты.
  3. Проверить наличие фильтров и действий, которые добавляют корзину в меню через хуки.

Пошаговое решение: удаление кнопки корзины из меню без плагинов

1. Отключение виджета корзины

Если корзина выводится через виджет, зайдите в Внешний вид – Виджеты и удалите виджет WooCommerce Cart из всех областей с меню.

2. Удаление корзины из меню с помощью фильтра wp_nav_menu_items

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

add_filter('wp_nav_menu_items', 'remove_woocommerce_cart_from_menu', 10, 2); 
function remove_woocommerce_cart_from_menu($items, $args) {
    if (isset($args->theme_location) && $args->theme_location === 'primary') { // замените 'primary' на вашу локацию меню
        // Удаляем ссылку корзины по CSS классу
        $items = preg_replace('/<li[^>]*class=".*?cart.*?"[^>]*>.*?<\/li>/i', '', $items);
    }
    return $items;
}

Этот код удалит элемент меню с классом, содержащим слово "cart".

3. Удаление вызовов woocommerce_cart_link() из шаблонов

Если кнопка выводится напрямую через функцию, вам нужно найти в теме вызов woocommerce_cart_link() и закомментировать или удалить его, например в файле header.php или template-parts/header/menu.php.

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

После внесения изменений:

  • Очистите кеш сайта и браузера.
  • Откройте сайт в режиме инкогнито или другом браузере.
  • Проверьте отсутствие иконки корзины в меню и на других страницах.
  • Проверьте, что корзина функционирует, если она нужна, на страницах WooCommerce, например, на странице /cart/.

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

  • Кнопка корзины не исчезла: возможно, корзина добавляется через JavaScript. Проверьте скрипты темы и плагинов.
  • Удаление ломает верстку меню: используйте регулярное выражение аккуратно, чтобы не удалить лишние элементы. Можно заменить на более точный CSS класс.
  • Изменения не применяются: проверьте, используете ли дочернюю тему, и что изменения внесены именно туда. Очистите кеш.
  • Корзина не работает после удаления: убедитесь, что вы удаляли только кнопку в меню, а не функционал WooCommerce.

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

  • Не редактируйте напрямую файлы основной темы, используйте дочернюю.
  • Избегайте множества регулярных выражений в фильтрах меню — это может замедлять загрузку.
  • Для отладки используйте WP_DEBUG и консоль браузера.
  • Если хотите временно скрыть корзину, проще использовать CSS: .cart-contents { display: none !important; } — но это не удалит элемент из DOM.

Сравнение вариантов удаления кнопки корзины

МетодПреимуществаНедостатки
Удаление виджетаПросто, не требует кодаРаботает только если корзина через виджет
Фильтр wp_nav_menu_itemsГибко, работает для менюНужны знания PHP и регулярных выражений
Удаление вызова в шаблонахПолностью контролируемоТребует редактирования файлов темы
CSS-скрытиеОчень просто, быстроЭлемент остается в DOM, SEO и производительность не улучшаются
Оптимизация запросов в WordPress с помощью WP7: практическое руководство
20.02.2026
Как сделать автоматическое сохранение форм в WordPress с помощью JavaScript
14.01.2026
Как удалить неиспользуемые таблицы в базе данных WordPress
27.03.2026
Как создать многослойную форму в WordPress с помощью AJAX
03.02.2026
Как использовать WP7 AJAX для реального времени обновления данных в WordPress
27.01.2026