WooCommerce: не отображается кнопка «Добавить в корзину» — как исправить

Диагностика проблемы с отсутствующей кнопкой «Добавить в корзину» в WooCommerce

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

Основные причины отсутствия кнопки «Добавить в корзину»

  • Товар имеет статус «нет в наличии» или отключён.
  • Вариации товара настроены некорректно или отсутствуют.
  • Конфликт с темой или плагинами, перекрывающими шаблоны WooCommerce.
  • Кастомные фильтры или хуки, отключающие вывод кнопки.
  • Настройка WooCommerce, убирающая кнопку для некоторых типов товаров.

Пошаговое решение проблемы с кнопкой «Добавить в корзину»

1. Проверка статуса товара и наличия

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

  • Проверьте вкладку «Запасы» — количество товара должно быть больше нуля или отмечена опция «Разрешить заказы при отсутствии на складе».
  • Проверьте статус товара — он должен быть опубликован.

2. Проверка типа товара и вариаций

Для вариативных товаров кнопка «Добавить в корзину» не отображается, если не выбрана вариация. Убедитесь, что вариации правильно созданы и активны.

Пример проверки вариаций через код:

global $product;
if ( $product->is_type( 'variable' ) ) {
    $available_variations = $product->get_available_variations();
    if ( empty( $available_variations ) ) {
        echo 'Вариации не заданы или отключены';
    }
}

3. Отключение конфликтующих плагинов и переключение темы

Чтобы выявить конфликт с темой или плагинами:

  • Временно переключитесь на стандартную тему, например, Storefront.
  • Отключите все плагины, кроме WooCommerce.
  • Проверьте, появилась ли кнопка.
  • Если да, включайте плагины по одному, проверяя каждый раз отображение кнопки.

4. Проверка пользовательских хуков и фильтров

Некоторые фильтры могут отключать кнопку. Проверьте наличие в functions.php или в плагинах кода, похожего на:

remove_action( 'woocommerce_after_shop_loop_item', 'woocommerce_template_loop_add_to_cart', 10 );

Или фильтры, возвращающие false для отображения кнопки.

Для проверки временно отключите подобные строки.

5. Принудительный вывод кнопки через код

Если кнопка не отображается, можно вручную добавить её вывод в нужное место шаблона, например, в content-single-product.php или через хук:

add_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_add_to_cart', 30 );

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

  • Откройте страницу товара в режиме инкогнито браузера, чтобы исключить кэш.
  • Убедитесь, что кнопка «Добавить в корзину» отображается и активна.
  • Попробуйте добавить товар в корзину и проверьте, что он появляется в корзине.
  • Проверьте в консоли браузера отсутствие ошибок JavaScript, которые могут блокировать кнопку.

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

  • Ошибка: Кнопка появляется, но не работает при клике.
    • Причина: JavaScript конфликт или отсутствующие скрипты WooCommerce. Решение: Проверьте консоль браузера, отключите конфликтующие скрипты, убедитесь, что wp_footer() корректно вызывается в теме.
  • Ошибка: Кнопка не появляется только для вариативных товаров.
    • Причина: отсутствуют или неактивны вариации. Решение: Создайте хотя бы одну вариацию и активируйте её.
  • Ошибка: Кнопка отсутствует после обновления WooCommerce.
    • Причина: конфликт шаблонов темы с новой версией WooCommerce. Решение: Обновите тему или переопределите шаблоны, сверяясь с документацией WooCommerce.

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

  • Не редактируйте напрямую файлы плагина WooCommerce — используйте дочернюю тему или хуки.
  • Для кастомизации кнопки используйте фильтры, например woocommerce_product_single_add_to_cart_text для изменения текста.
  • Оптимизируйте кэш, исключив страницы корзины и товара, чтобы кнопка всегда отображалась корректно.
  • Проверяйте совместимость WooCommerce с темой и плагинами после обновлений — используйте staging-сервер.

Сравнение вариантов решения

МетодПреимуществаНедостаткиКогда использовать
Отключение конфликтующих плагинов и темыПростое выявление причиныТребуется время, влияет на работоспособность сайтаПри подозрении на конфликт
Исправление настроек товара (наличие, вариации)Быстрое и надежное решениеРаботает только при ошибках в товарахЕсли кнопка отсутствует из-за настроек
Принудительный вывод кнопки через кодГибкость и контрольТребует навыков разработкиЕсли стандартные методы не работают
Как добавить вывод краткого описания (excerpt) в архиве WordPress
08.02.2026
WooCommerce: не отображается кнопка «Добавить в корзину» — как исправить
20.05.2026
Как удалить атрибут alt из изображений в WordPress
25.12.2025
Как изменить время хранения кеша в WordPress
04.02.2026
WooCommerce: решение проблем с неотображением промокодов в корзине
20.05.2026