Как вывести общую сумму всех товаров Woocommerce?

Ссылка скопирована
1 ответ

Нужна помощь, не могу понять как узнать стоимость всех товаров загруженных на Woocommerce.
Есть ли плагины для этой задачи?*

Дополнительно:

Если нужен периодический подсчет и не шибко сильно заморачиваться (это к вопросу "как узнать стоимость всех товаров загруженных на Woocommerce"), то
Админка->Товары->Экспорт
Открываем таблицу, находим столбец со стоимостью товаров и суммируем

Если нужно выводить в админку, то можно глянуть сюда - там есть решения, которые могут натолкнуть на нужную мысль (например)
Второй вариант - доп нагрузка, если товаров много, то может перестать работать раздел "Товары" (ну или грузиться долго будет)

Ответы:

просуммировать стоимость всех товаров

  • Гений)
  • Romineotayo, используем функцию wc_get_products, получаем список нужных товаров, затем суммируем их стоимости
Нужно решить такую задачу?

Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.

Заказать помощь
Лучший ответ
1
Backend-редакция Ответ

“Общая сумма всех товаров 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;
}

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;

$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;

$total = WC()->cart ? WC()->cart->get_cart_contents_total() : 0;

Перед внедрением уточните бизнес-смысл показателя. Для отчётов по складу лучше использовать экспорт WooCommerce/складской плагин, потому что налоги, скидки, вариации и товары без остатка могут сильно исказить итог.

Если показатель выводится в админке, можно считать его по кнопке или cron-задаче раз в несколько часов. Если вывести расчёт на фронт без кэша, магазин с большим каталогом начнёт тормозить. Для валюты используйте wc_price($total), чтобы форматирование соответствовало настройкам WooCommerce.

Другие ответы (0)

Пока нет других ответов. Будьте первым, кто поможет автору.

Ответить на вопрос

комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Вам также может быть интересно