我有一些简单的产品和几个带有尺寸和颜色变体的可变产品。对于我想在主页或其他地方展示的各种颜色的产品,所述产品有多少种颜色可供选择。因此,在主页上的产品图像下,它将根据该产品的颜色变量下有多少变体显示为“Colors:5”或类似的东西。
我已经搜索过,并没有发现在WooCommerce中如何做到这一点。
(使用WooCommerce插件在Wordpress中使用Divi主题。)
答案 0 :(得分:0)
这可以通过构建自定义短代码来完成,该短代码将输出每个产品属性名称以及用于变量产品ID的变体的术语计数:
if( ! function_exists('product_attributes_count') ) {
function product_attributes_count( $atts, $content = null ) {
// Attributes
$atts = shortcode_atts( array(
'id' => '',
), $atts, 'attr_count' );
$product = wc_get_product($atts['id']);
// Only for variable products
if( ! $product->is_type('variable')) return '';
$results = array();
// Loop through product attributes for variations for this variable product
foreach( $product->get_variation_attributes() as $taxonomy => $term_slugs ){
$attr_name = get_taxonomy( $taxonomy )->labels->singular_name; // name
$count = count($term_slugs); // terms count
// Formatting
$results[] = '<span class="'.$taxonomy.'">' . $attr_name . ': ' . $count . '</span>';
}
// Output a coma separated string
return explode(', ', $results)
}
add_shortcode("attr_count", "product_attributes_count");
}
代码放在活动子主题(或活动主题)的function.php文件中。经过测试和工作。
使用短代码 (参数
id
,即变量产品ID):
- 在Wordpress页面或帖子编辑器上,只需使用:
[attr_count id='40']
- 在PHP代码上使用:
echo do_shortcode("[attr_count id='40']");
- 在PHP内部使用:
<?php echo do_shortcode("[attr_count id='40']"); ?>
如果您只需要定位颜色,请在IF
循环中插入此foreach
语句:
if( $taxonomy == 'pa_color' ){
// the code
}