Woocommerce get_item()函数返回false

时间:2017-08-01 09:24:21

标签: php wordpress woocommerce orders

随着WooCommerce 3+引入新的API来获取订单及其详细信息,很多事情都发生了变化,许多事情也破裂了。

在我的插件中考虑以下代码:

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

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

给了我 bool(false)。我检查了数据库和订单,项目确实存在。

另外

var_dump($order)会返回包含所有项目的整个订单对象。

基本上,只有函数get_item似乎不起作用。

1 个答案:

答案 0 :(得分:0)

  

唯一的解释是,您使用的ID不是 item_id ,其类型为 "line_item" ......

我已尝试过,当 WC_Abstract_Order get_item() 时,使用 item_id "line_item" 方法正常运行strong>属于" 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 … } 商品ID,请尝试:

        Shell ("SQLLDR USERID= srvmacro/srvmacroswazi@pn81.world CONTROL=" & outfile & " LOG=" & outfile & ".LOG")
        'Shell ("SQLLDR USERID= srvmacro/srvmacroswazi@pn81.world CONTROL=" & outfile & " LOG=" & outfile & ".LOG")
        MsgBox " Done all   "
    End If
    'Unload UserForm1
End Sub

这应该澄清事情。

参考:How to get WooCommerce order details