如何获取WooCommerce可变产品中定义变体的属性
获取WooCommerce可变产品中定义变体的属性
核心实现逻辑
WooCommerce里,用于生成变体的属性会被标记为「用于变体」,只需遍历产品属性并检查这个标记,就能筛选出目标属性。
代码示例
// 先获取目标可变产品对象,$product_id为产品ID $product = wc_get_product($product_id); if ( $product && $product->is_type('variable') ) { $used_for_variation_attrs = []; // 遍历产品所有属性 foreach ( $product->get_attributes() as $attr ) { // 检查属性是否用于生成变体 if ( $attr->get_variation() ) { $used_for_variation_attrs[] = [ 'id' => $attr->get_id(), 'name' => $attr->get_name(), 'slug' => $attr->get_slug() ]; } } // 处理结果,比如取第一个符合条件的属性(对应你场景里的「尺寸」) if ( !empty($used_for_variation_attrs) ) { $target_attr = $used_for_variation_attrs[0]; // 后续可使用$target_attr['id']、$target_attr['name']等参数 } }
关键方法说明
get_attributes():返回产品所有属性的WC_Product_Attribute对象数组get_variation():判断属性是否被设置为「用于变体」,返回布尔值- 若需直接操作原始元数据,可调用
$product->get_meta('_product_attributes'),其中'is_variation' => true的条目即为目标属性
内容的提问来源于stack exchange,提问作者Faye D.
相关产品推荐
相关产品推荐

