wordpress - Woocommerce:在产品类别名称下列出某些产品属性值
问题描述
我们有一家自行车零件的 woocommerce 商店。我们的父类别名称是“Motorcycle-Parts”。子类别是摩托车品牌,例如:
Motorcycle-Parts
=> Suzuki
=> Honda
=> Yamaha
...
在子类别中,我们有产品。这些产品有一个名为“ccm”的属性(它的立方容量,带有数值)。
现在我们尝试在类别名称下方列出每个类别的产品中所有现有的“ccm”值,例如:
Motorcycle-Parts
=> Suzuki
- 300
- 380
- 550
- ...
=> Honda
- 600
- 650
- 700
- ...
=> Yamaha
- 420
- 650
- 860
- ...
因此,例如,如果产品在类别“Suzuki”中,属性为 pa_ccm(例如 500),我们希望在类别名称下方自动列出该值(500),以便人们看到,在类别 Suzuki one(或更多)存在 pa_ccm 值为 500 的产品。
我用 _get_term_hierarchy 尝试了一些东西,但我的技能在这里有限。所以没有结果。感谢您的帮助和想法。
解决方案
您可能必须循环每个类别、每个产品、每个属性,然后是每个术语,以获得所需的结构。为清楚起见,我将离开父子类别部分并呈现如下代码的其余部分:
// Get all categories
$args = array(
'taxonomy' => 'product_cat',
'orderby' => 'name'
);
$all_categories = get_categories($args); //all categories are stored here.
foreach ($all_categories as $cat) {
echo "Category: " .$cat->name ."<br>";
$product_args = array(
'category' => $cat->slug;
);
//get products for each category
foreach( wc_get_products($product_args) as $product ) {
//get attributes for each product
foreach( $product->get_attributes('pa_ccm') as $attr_name => $attr ){
//get terms for each attribute
foreach( $attr->get_terms() as $term ){
echo "CCM: " .$term->name ."<br>";
}
}
}
}
推荐阅读
- intellij-idea - == intellij 的实时模板快捷方式?
- javascript - 错误:发送后无法设置标头。发布数据
- reactjs - Reactjs,如何在构建时导入?
- c# - 在 asp.net 上创建静态文件是否安全?
- wordpress - 无法将 Firebase 与 php 连接
- javascript - 如何基于组件内部的 onclick 显示/隐藏 array.map() 项
- c++11 - 为什么要调用专门的模板?
- reactjs - React & jest,如何测试变化的状态
- excel - 仅使用文本而不是公式打印单元格
- python - 在 python 加密库中使用哪种加密算法 serialization.BestAvailableEncryption(b'mypassword')?