使用Woocommerce 2.6.8,我无法获取docs和here on SO中所述的订单项数据信息。Woocommerce - 获取订单项目的价格和数量。
所有我想要的是让行项目的价格和数量,这应该是简单:
$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
循环,直到我发现我在寻找关键的粗黑客。
我觉得我必须在这里丢失一些明显的东西。
这工作完全从
order
对象中获取,也证明了我的大部分原代码也工作正常。问题是我在woocommerce完全加载之前调用了这些方法,所以正确的信息没有被返回!你的代码帮助我意识到别的东西不太对,现在终于解决了,谢谢! – roboboboboget_item_meta从WC 3.0开始已弃用,应该使用wc_get_order_item_meta代替 – Tofandel
@Tofandel ...正如你可以看到这个答案在WC 3之前一直是女佣。所以我做了一个更新,然后......谢谢。 – LoicTheAztec