Нужно восстановить атрибут товара для товара в корзине

Я пытаюсь восстановить массив атрибутов для продуктов в корзине 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);
}

Однако я получаю «вызов функции-члена get_name () на нуле «

Я думаю, что я получаю предметы Код товара все в порядке (используя эхо смотреть). НО я не уверен, как использовать функцию 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

2

Решение

Правильный код для этого:

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;
}
}

Проверено и работает

0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector