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

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

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

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

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

1. Создание фильтра для отображения цены отсутствующих товаров

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

add_filter('woocommerce_cart_item_price', 'show_price_for_out_of_stock_items', 10, 3); 
function show_price_for_out_of_stock_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;
    }
    return $price_html;
}

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

Для ясности покупателя стоит добавить пометку, что товар отсутствует, но цена учитывается:

add_filter('woocommerce_cart_item_name', 'add_out_of_stock_notice_in_cart', 10, 3);
function add_out_of_stock_notice_in_cart($product_name, $cart_item, $cart_item_key) {
    $product = $cart_item['data'];
    if (!$product->is_in_stock()) {
        $product_name .= ' – <span style="color:red;">(Отсутствует на складе)</span>';
    }
    return $product_name;
}

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

1. Добавьте в корзину товар с нулевым или отрицательным запасом.
2. Перейдите на страницу корзины.
3. Убедитесь, что цена товара отображается рядом с наименованием.
4. Проверьте, что рядом с названием товара есть пометка (Отсутствует на складе) красного цвета.
5. Итоговая сумма на странице корзины и оформления заказа должна включать стоимость отсутствующих товаров.

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

  • Цена не отображается для отсутствующего товара: Проверьте, что в объекте $product действительно вызывается get_price(), а не get_regular_price(), так как цена может быть динамической.
  • Пометка о статусе отсутствия не видна или форматируется некорректно: Убедитесь, что фильтр применяется корректно и нет конфликтов с CSS темы.
  • Итоговая сумма корзины не учитывает отсутствующие товары: Проверьте, нет ли плагинов, которые модифицируют расчет стоимости и исключают отсутствующие товары из суммы.

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

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

Сравнение подходов к выводу цены отсутствующих товаров

МетодРеализацияПлюсыМинусы
Через фильтр woocommerce_cart_item_priceКод в functions.php, простой фильтрБыстро, не требует плагиновНужны знания PHP, возможны конфликты с темой
Использование плагина для управления запасамиСторонние плагины, например WooCommerce Pre-OrdersДополнительный функционал (предзаказы, уведомления)Платно, может замедлить сайт
Как закрыть от индексации страницы автора в WordPress без поломки SEO
14.08.2026
Как показывать разные способы доставки WooCommerce в зависимости от адреса покупателя
11.08.2026
Как запретить индексацию архивов, цепочек и дублей в WordPress без потери полезных страниц
18.08.2026
Как отключить автоматическое обновление плагинов WordPress с подтверждением
02.04.2026
WooCommerce: как использовать хуки для изменения метаданных заказа на этапе оформления
07.08.2026

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