随着WooCommerce 3+引入新的API来获取订单及其详细信息,很多事情都发生了变化,许多事情也破裂了。
在我的插件中考虑以下代码:
$order = wc_get_order($order_id);
$id= 27;
var_dump($order->get_item($id));
给了我 bool(false)。我检查了数据库和订单,项目确实存在。
另外
var_dump($order)
会返回包含所有项目的整个订单对象。
基本上,只有函数get_item
似乎不起作用。
答案 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
这应该澄清事情。