Использование Woocommerce 2.6.8, я не могу получить информацию о позиции заказа, как описано в docs и here on SO.Woocommerce - Получение цены и количества товара.
Все, что я хочу, чтобы получить цену Line Item и количество, которое должно быть простым:
$order = new WC_Order($order_id);
$order_items = $order->get_items();
foreach ($order_items as $items_key => $items_value) {
echo $items_value['name']; //this works
echo $items_value['qty']; //this doesn't work
echo $items_value[item_meta][_qty][0]; //also doesn't work
echo $items_value['line_total']; //this doesn't work
}
Приглядевшись на то, что получает возвращаемые вернулся
Array
(
[1] => Array
(
[name] => Sample Product 1
[type] => line_item
[item_meta] =>
[item_meta_array] => Array
(
[1] => stdClass Object
(
[key] => _qty
[value] => 1
)
[2] => stdClass Object
(
[key] => _tax_class
[value] =>
)
[3] => stdClass Object
(
[key] => _product_id
[value] => 8
)
[4] => stdClass Object
(
[key] => _variation_id
[value] => 0
)
[5] => stdClass Object
(
[key] => _line_subtotal
[value] => 50
)
[6] => stdClass Object
(
[key] => _line_total
[value] => 50
)
[7] => stdClass Object
(
[key] => _line_subtotal_tax
[value] => 0
)
[8] => stdClass Object
(
[key] => _line_tax
[value] => 0
)
[9] => stdClass Object
(
[key] => _line_tax_data
[value] => a:2:{s:5:"total";a:0:{}s:8:"subtotal";a:0:{}}
)
)
)
)
Это все с использованием документированных Методы Woocommerce, почему информация, которую мне нужно сохранить в этом item_meta_array
?
Кто-нибудь знает, как я могу получить эту информацию?
Предпочтительно использовать документированные методы, в отличие от необоснованного взлома петли через item_meta_array
, пока не найду ключ, который я ищу.
Я чувствую, что, должно быть, мне не хватает чего-то очевидного.
Это прекрасно работает, также оказывается большая часть моего оригинального кода правильно работал тоже. Проблема заключалась в том, что я вызывал эти методы до полной загрузки woocommerce, поэтому правильная информация не возвращалась! Ваш код помог мне понять, что что-то еще не совсем правильное, наконец, он решил сейчас, спасибо! – robobobobo
get_item_meta устарел с WC 3.0, вместо этого следует использовать wc_get_order_item_meta – Tofandel
@Tofandel ... Как вы можете видеть, этот ответ был горничным перед WC 3. Поэтому я делаю обновление, затем ... спасибо. – LoicTheAztec