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

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

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

  • Проверьте тип товара: кнопка не отображается для товаров с типом «Внешний/партнерский» или если товар не опубликован.
  • Убедитесь, что товар есть в наличии и разрешена продажа (stock status и manage stock).
  • Проверьте, не отключена ли кнопка через фильтры или хуки в теме или функциях.
  • Проверьте консоль браузера на ошибки JavaScript, которые могут блокировать вывод кнопки.
  • Отключите все плагины, кроме WooCommerce, и переключитесь на стандартную тему (например, Storefront), чтобы проверить конфликт.

Пошаговое решение проблемы

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

Убедитесь, что товар опубликован, в наличии и тип товара поддерживает добавление в корзину.

add_action('init', function() {
    $product = wc_get_product(123); // замените 123 на ID вашего товара
    if ( !$product->is_purchasable() ) {
        error_log('Товар не доступен для покупки');
    }
});

2. Отключение конфликтующих фильтров кнопки

Если в functions.php или плагинах есть фильтры, меняющие вывод кнопки add_to_cart, временно закомментируйте их.

// Пример фильтра, который может убрать кнопку
remove_filter('woocommerce_is_purchasable', 'my_custom_function');

3. Проверка шаблонов темы

Проверьте, не переопределяет ли тема шаблон single-product/add-to-cart/simple.php или похожие. Если да, попробуйте временно переименовать папку с шаблонами WooCommerce в теме, чтобы задействовать дефолтные шаблоны.

4. Исправление вывода кнопки вручную

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

add_action('woocommerce_single_product_summary', function() {
    global $product;
    if ( $product && $product->is_purchasable() && $product->is_in_stock() ) {
        woocommerce_template_single_add_to_cart();
    }
}, 30);

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

  • Откройте страницу товара в браузере в режиме инкогнито (чтобы избежать кэширования).
  • Проверьте, что кнопка видна и кликабельна.
  • В консоли разработчика (F12) убедитесь, что нет ошибок JavaScript.
  • После клика на кнопку товар добавляется в корзину (проверьте корзину).

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

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

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

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

Сравнение вариантов решения проблемы кнопки

МетодПреимуществаНедостатки
Исправление шаблонов темыГибкость, полный контроль над выводомТребует знаний PHP, риск ошибок при обновлении темы
Использование хуков и фильтров в functions.phpЛегко отключить/изменить, не трогая шаблоныНе всегда решает проблему, если тема сильно модифицирована
Отключение конфликтующих плагиновБыстрый способ выявить источник проблемыМожет повлиять на функционал сайта, требует тестирования
Как полностью отключить Gutenberg в WordPress
21.12.2025
Как правильно удалить кэш в WordPress: пошаговое руководство
10.11.2025
WooCommerce: не отображается кнопка «Добавить в корзину» — как исправить
26.05.2026
Как автоматически удалять неиспользуемые meta данные в WordPress
24.02.2026
Как удалить meta из заголовка постов WordPress
18.11.2025