Как добавить вывод стоимости отсутствующих товаров в корзине WooCommerce

Диагностика проблемы: почему стоимость отсутствующих товаров не отображается

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

Чтобы подтвердить проблему, откройте корзину с отсутствующим товаром и посмотрите, отображается ли цена рядом с товаром. Если нет — значит, стандартная логика WooCommerce не учитывает цену таких товаров.

Пошаговое решение: как вывести цену отсутствующих товаров в корзине

1. Добавление пользовательской функции для вывода цены

Для решения задачи нужно перехватить вывод цены в корзине и добавить отображение цены даже для отсутствующих товаров. Это можно сделать с помощью фильтра woocommerce_cart_item_price.

add_filter('woocommerce_cart_item_price', 'show_price_for_outofstock_items', 10, 3);
function show_price_for_outofstock_items($price_html, $cart_item, $cart_item_key) {
    $product = $cart_item['data'];
    if (!$product->is_in_stock()) {
        // Получаем цену товара
        $price = wc_price($product->get_price());
        // Возвращаем цену с пометкой
        return $price . ' <small>(Нет в наличии)</small>';
    }
    return $price_html;
}

2. Добавление уведомления в шаблон корзины (опционально)

Для повышения информативности можно добавить сообщение под названием товара, что он отсутствует, но цена отображается:

add_filter('woocommerce_cart_item_name', 'add_outofstock_notice_to_cart_item_name', 10, 3);
function add_outofstock_notice_to_cart_item_name($name, $cart_item, $cart_item_key) {
    $product = $cart_item['data'];
    if (!$product->is_in_stock()) {
        $name .= '<br><small style="color:#a00;">Товар отсутствует, цена указана для информации</small>';
    }
    return $name;
}

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

1. Добавьте в корзину товар, который отсутствует на складе (статус "Нет в наличии").
2. Откройте страницу корзины и убедитесь, что у такого товара отображается цена с пометкой "(Нет в наличии)".
3. Проверьте, что название товара дополнено уведомлением о статусе отсутствия.

Если цена отображается корректно и пометки есть, значит решение работает.

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

  • Цена не отображается вообще: Проверьте, что в корзине действительно используется объект $product и что get_price() возвращает числовое значение. Также убедитесь, что код добавлен в файл функции темы (functions.php) или в плагин, и что фильтры подключены.
  • Пометка "Нет в наличии" не выводится: Возможно, фильтр woocommerce_cart_item_price переопределяется другим плагином. Проверьте приоритет фильтра или отключите конфликтующие плагины.
  • Цена отображается некорректно или без валюты: Используйте функцию wc_price() для корректного форматирования цены с валютой.

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

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

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

МетодКодПлюсыМинусы
Фильтр woocommerce_cart_item_priceКороткий, простойЛегко добавить, не требует изменений шаблоновЗависит от правильной работы хуков
Редактирование шаблона корзиныБольше контроля над выводомМожно кастомизировать любой элементТребует поддержки при обновлениях темы/плагинов
Использование сторонних плагиновБез кодаБыстрая установкаМожет добавлять лишний функционал и нагрузку
Как отключить автоматическое обновление плагинов WordPress с подтверждением
02.04.2026
Как избежать конфликтов между плагинами WordPress: практические советы и примеры
07.12.2025
Как добавить вывод стоимости отсутствующих товаров в корзине WooCommerce
01.05.2026
Как автоматизировать удалённую очистку кеша в WordPress
24.01.2026
Как добавить автозагрузку изображений в WooCommerce для ускорения сайта
30.03.2026

Совсем скоро здесь заработает сайт о вордпресс. И будет он связан с продажами, магазинами или чем-то таким.