我正在尝试恢复Woocomerce购物车中产品的一系列属性
这是我写的代码(我是初学者)
foreach ( WC()->cart->get_cart() as $cart_item_key => $cart_item ) {
global $product;
$my_product_id = $cart_item['product_id'];
echo "ID is {$my_product_id} \n";
$my_attribute = WC()->product->attribute->get_name($value);
}
但是我得到“在null上调用成员函数 get_name()”
我想我的项目 product_id 没问题(使用 echo 查看)。但我不知道如何使用函数get_name()或实际上对象中的任何方法 WC_Product_Attribute
我想我在循环之外工作?
我正在将这段代码写入WordPress'页面'以便开发它,使用一个将代码包装在标签中的插件 - [insert_php]& [/ insert_php]
非常感谢,但我需要从概念上理解我的错误。
来自LoicTheAztec的正确代码作为数组的第三个元素(我想要检索的属性)生成
'pa_1_scale' =>
object(WC_Product_Attribute)[1410]
protected 'data' =>
array (size=6)
'id' => int 1
'name' => string 'pa_1_scale' (length=10)
'options' =>
array (size=1)
...
'position' => int 2
'visible' => boolean true
'variation' => boolean false
答案 0 :(得分:0)
正确的代码是:
foreach ( WC()->cart->get_cart() as $cart_item_key => $cart_item ) {
// HERE the WC_Product object
$product = $cart_item['data'];
$product_id = $cart_item['product_id'];
$attributes = $product->get_attributes();
foreach($attributes as $taxonomy => $value){
// The WP_Term object
$term_obj = get_term_by( 'slug', $value, $taxonomy );
$term_name = $term_obj->name;
}
}
经过测试和工作