在WooCommerce中,我试图让变量产品的所有值彼此独立。
例如:
我有属性大小。
尺寸有三个值:尺寸S,尺寸M和尺寸L.
如果产品具有尺寸的所有选项,我希望在我的输出中看到产品三次:
使用以下代码,我会看到我有哪些变体。不幸的是,我没有来。
private function readOptions($product) {
$variations = $product->get_children();
foreach ($variations as $variation) {
$single_variation=new WC_Product_Variation($variation);
$this->doLog(print_r($single_variation->get_variation_attributes(), true));
}
}
有没有人知道如何做到这一点?
感谢。
答案 0 :(得分:1)
我在这里得到了你的功能代码(评论很好):
private function readOptions($product) {
// Get all attributes & values set in the product (product variations)
$variation_attributes = $product->get_variation_attributes();
// iterating through each attribute
foreach ($variation_attributes as $attribute_slug => $attribute_slug_values){
// Getting the attribute object (the taxonomy object)
$attribute_obj = get_taxonomy( $attribute_slug ); // Attribute name: $attribute_obj->label
// Iterating through each attribute values set in the product
foreach($attribute_slug_values as $attribute_slug_value){
// Getting the object of the term value (and the name: $attr_value_obj->name)
$attr_value_obj = get_term_by( 'slug', $attribute_slug_value, $attribute_slug );
// Output the names of the product, the attribute and the value
echo '<p>Product "'.$product->get_title().'" has attribute "'.$attribute_obj->label.'" with value "'.$attr_value_obj->name.'"</p>';
}
}
}
你会得到你所期待的。
此处输出只是一个示例,但您可以获得产品中设置的每个属性和值:
产品+属性+值(对于其中设置的所有属性值)。