在 Wordpress 頁面上,我想顯示所有產品類別,然后是該類別中產品的總價值,然后是總計一行。例如:
| 類別 | # 產品 | 總價值 |
|---|---|---|
| 郵票 | 100 | 2099,- |
| 硬幣 | 400 | 2399,- |
| 牌 | 50 | 399,- |
| 全部的 | 550 | 4897,- |
所以基本上,我需要為每個類別創建一個回圈,然后將這些產品的每個 regular_price 相加。最后,我需要將所有這些價格相加得到總數。
偽代碼/(不作業):
$categories = get_categories();
foreach($categories as $category) {
echo <a href="' . get_category_link($category->term_id) . '">' . $category->name . '</a>>';
}
$totals_per_category = array();
foreach($categories as $key => $category) {
foreach($category as $id => $value) {
$totals_per_category[$id] = $value;
}
}
Echo $value;
感謝您提供如何完成這項作業的任何建議。
uj5u.com熱心網友回復:
要獲取所有類別,您可以使用如下get_terms函式:
$categories = get_terms(
array(
'taxonomy' => 'product_cat',
'orderby' => 'name',
'hide_empty' => false,
)
);
隨意根據您的需要修改論點。一旦你有一個術語陣列,你可以使用它來獲取每個類別的術語 ID,并使用后者來運行一個 SQL 查詢,這將允許你獲取該類別中所有產品的總值。可以這樣做:
$totals_per_category = array();
foreach ($categories as $key => $category) {
$term_id = $category->term_id;
global $wpdb;
$total = $wpdb->get_var(
"
SELECT sum(meta_value)
FROM $wpdb->postmeta
INNER JOIN {$wpdb->term_relationships} ON ( {$wpdb->term_relationships}.object_id = {$wpdb->postmeta}.post_id )
WHERE ( {$wpdb->term_relationships}.term_taxonomy_id IN ($term_id) )
AND {$wpdb->postmeta}.meta_key = '_regular_price'"
);
$totals_per_category[$term_id] = $total;
}
現在,由于我們有每個類別的總產品價值,我們可以使用 獲得所有類別的總和array_sum。
echo array_sum($totals_per_category); // This will output the total of all categories
現在您可以使用上面的邏輯來檢索總計并根據需要圍繞它構建標記(表、div ...等)。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/487977.html
標籤:php WordPress woocommerce 价格
下一篇:根據庫存數量和SKU灰顯產品變化
