Как вывести общую сумму всех товаров Woocommerce?
Нужна помощь, не могу понять как узнать стоимость всех товаров загруженных на Woocommerce.
Есть ли плагины для этой задачи?*
Дополнительно:
Если нужен периодический подсчет и не шибко сильно заморачиваться (это к вопросу "как узнать стоимость всех товаров загруженных на Woocommerce"), то
Админка->Товары->Экспорт
Открываем таблицу, находим столбец со стоимостью товаров и суммируем
Если нужно выводить в админку, то можно глянуть сюда - там есть решения, которые могут натолкнуть на нужную мысль (например)
Второй вариант - доп нагрузка, если товаров много, то может перестать работать раздел "Товары" (ну или грузиться долго будет)
Ответы:
просуммировать стоимость всех товаров
- Гений)
- Romineotayo, используем функцию wc_get_products, получаем список нужных товаров, затем суммируем их стоимости
Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.
Пока нет других ответов. Будьте первым, кто поможет автору.
Ответить на вопрос
“Общая сумма всех товаров WooCommerce” может означать разные вещи: сумму цен всех товаров в каталоге, стоимость складских остатков или сумму товаров в текущей корзине. Код зависит от этого.
Если нужна сумма цен всех опубликованных товаров без учёта количества на складе:
function my_total_products_price() { $ids = wc_get_products([ 'status' => 'publish', 'limit' => -1, 'return' => 'ids', ]); $total = 0; foreach ($ids as $id) { $product = wc_get_product($id); if (!$product) { continue; } $total += (float) $product->get_price(); } return $total; }
Если нужна стоимость склада, умножайте цену на остаток:
$stock = $product->managing_stock() ? (int) $product->get_stock_quantity() : 0; $total += (float) $product->get_price() * $stock;
Для вариативных товаров нужно учитывать вариации, а не только родительский товар. На большом магазине не запускайте такой расчёт на каждой странице. Считайте по cron, при изменении товара или сохраняйте результат в transient.
Если нужна сумма текущей корзины, вообще не обходите товары каталога:
$total = WC()->cart ? WC()->cart->get_cart_contents_total() : 0;
Перед внедрением уточните бизнес-смысл показателя. Для отчётов по складу лучше использовать экспорт WooCommerce/складской плагин, потому что налоги, скидки, вариации и товары без остатка могут сильно исказить итог.
Если показатель выводится в админке, можно считать его по кнопке или cron-задаче раз в несколько часов. Если вывести расчёт на фронт без кэша, магазин с большим каталогом начнёт тормозить. Для валюты используйте
wc_price($total), чтобы форматирование соответствовало настройкам WooCommerce.