如何通过订单ID获取WooCommerce订单详细信息.我试过这个,但对我不起作用.
$order = new WC_Order( $order_id );
Run Code Online (Sandbox Code Playgroud) 我有一个功能,这样做:
$order = new WC_Order($order_id);
$customer = new WC_Customer( $order_id );
Run Code Online (Sandbox Code Playgroud)
如何从中获取客户详细信息?我已经尝试了文档中的所有内容,但不知何故,只是存在一些细节,但其余的不是,例如
$data['Address'] = $customer->get_address() . ' ' . $customer->get_address_2();
$data['ZipCode'] = $customer->get_postcode();
Run Code Online (Sandbox Code Playgroud)
是空的.
干
var_dump($customer)
Run Code Online (Sandbox Code Playgroud)
生产:
object(WC_Customer)#654(2){["_ data":protected] => array(14){["country"] => string(2)"IT"> ["state"] => string(0) ""["postcode"] => string(0)""["city"] => string(0)""["address"] = >> string(0)""["address_2"] => string (0)""["shipping_country"] => string(2)"IT"["shipping_state"] => string(2)"BG"["shipping_postcode"] => string(0)""["shipping_city" ] = >> string(0)""["shipping_address"] => string(0)""["shipping_address_2"] => string(0)""["is_vat_exempt"] => bool(false)["calculated_shipping "] => bool(false)}?["_changed":"WC_Customer":private] => bool(false)}
正如你所看到的,这个城市是现在的,但其余的都是空的.我已经检查了客户的WP_usermeta和管理面板,所有数据都在那里.
有什么想法吗?
好了,阅读Woocommerce 3.0+的变化,似乎你不能再直接访问这个类了,所以我认为这个代码需要改变,因为它正在吐出一个错误:
$order_item_id = 15;
$order_item = new WC_Order_Item_Product($order_item_id);
$return = $order_item->get_id() ? $order_item : false;
Run Code Online (Sandbox Code Playgroud)
但是,令人尴尬的是,我不确定如何更改此代码以在此类的最新版本中使用正确的新getter和setter函数,该类不再具有构造.怎么做得好?我没有看到任何get关于获得订单项的功能与上述相同.
https://docs.woocommerce.com/wc-apidocs/class-WC_Order_Item_Product.html
也许我在这里忽视一些事情?