Woocommerce get_item()函数返回false

问题描述:

随着WooCommerce 3+引入新的API来获取订单及其细节,许多事情都发生了变化,很多事情也都被破坏了。Woocommerce get_item()函数返回false

考虑我的插件以下代码:

$order = wc_get_order($order_id); 
$id= 27; 

var_dump($order->get_item($id)); 

这给了我布尔(假)。我检查了数据库和订单,并且该项目确实存在。

而且

var_dump($order)并与所有项目返回整个订单对象。

所以基本上只有功能get_item似乎没有工作。

唯一的解释是,你正在使用的ID不是item_id与类型"line_item" ...

我曾尝试,它使用正常按预期工作WC_Abstract_Orderget_item()方法item_id是“line_item”类型。

要获得并检查从定义的订单ID正确"line_item"项目的ID,请尝试:

// define an exiting order ID first 
$order_id = 422; 

$order = wc_get_order($order_id); 

foreach($order->get_items() as $item_id => $item_values){ 
    $item_ids_array[] = $item_id; 
} 

var_dump($item_ids_array); // will output all item IDs (of type "line_item") for this order 

## ==> Then now you can try (to check get_item() method): 

foreach($item_ids_array as $item_id){ 
    var_dump($order->get_item($item_id)); // Will output each WC_Order_Item_Product Object … 
} 

这应该澄清的事情。

作为参考:How to get WooCommerce order details