在 WooCommerce 中,来自以下行代码:
$order = new WC_Order( $order_id );
如何从订单 ID 获取 WooCommerce 订单详细信息?
原文由 Faisal Ijaz 发布,翻译遵循 CC BY-SA 4.0 许可协议
在 WooCommerce 中,来自以下行代码:
$order = new WC_Order( $order_id );
如何从订单 ID 获取 WooCommerce 订单详细信息?
原文由 Faisal Ijaz 发布,翻译遵循 CC BY-SA 4.0 许可协议
使用 wp/wc rest api:
$request = new WP_REST_Request('GET', '/wc/v3/orders/<YOUR_ORDER_ID');
$response = rest_do_request($request);
$server = rest_get_server();
$order = $server->response_to_data($response, false);
print_r( $order['id'] );
print_r( $order['date_created'] );
print_r( $order['status'] );
...
来源: https ://wpscholar.com/blog/internal-wp-rest-api-calls/,https: //developer.wordpress.org/rest-api/reference/posts/#list-posts
原文由 Hamid Araghi 发布,翻译遵循 CC BY-SA 4.0 许可协议
1 回答4.1k 阅读✓ 已解决
3 回答1.9k 阅读✓ 已解决
2 回答2.3k 阅读✓ 已解决
2 回答776 阅读✓ 已解决
1 回答1.4k 阅读✓ 已解决
2 回答2.3k 阅读
1 回答695 阅读✓ 已解决
3.0+ 版本中的 WOOCOMMERCE 订单
自 Woocommerce 大型主要更新 3.0+ 以来,情况发生了很大变化:
WC_Order
对象,属性不能再像以前一样直接访问,会抛出一些错误。WC_Order
和WC_Abstract_Order
getter 和 setter 方法现在需要在WC_Order
对象实例上。WC_Order_Item
类,WC_Order_Item_Product
类,WC_Order_Item_Tax
类,WC_Order_Item_Shipping
类,WC_Order_Item_Coupon
类,WC_Order_Item_Fee
类。WC_Data
抽象类允许使用get_data()
、get_meta_data()
和get_meta()
--- 和 —3803aa058ad90db4d 方法访问订单和订单商品数据因此,在
foreach
循环中将无法像以前一样访问 Order items 属性,您将不得不使用 这些特定的 getter 和 setter 方法。使用一些
WC_Order
和WC_Abstract_Order
方法(示例):\(order_data = \)order->get_data(); // The Order data
\(order_id = \)order_data[‘id’]; \(order_parent_id = \)order_data[‘parent_id’]; \(order_status = \)order_data[‘status’]; \(order_currency = \)order_data[‘currency’]; \(order_version = \)order_data[‘version’]; \(order_payment_method = \)order_data[‘payment_method’]; \(order_payment_method_title = \)order_data[‘payment_method_title’]; \(order_payment_method = \)order_data[‘payment_method’]; \(order_payment_method = \)order_data[‘payment_method’];
Creation and modified WC_DateTime Object date string
// Using a formated date ( with php date() function as method) \(order_date_created = \)order_data[‘date_created’]->date(‘Y-m-d H:i:s’); \(order_date_modified = \)order_data[‘date_modified’]->date(‘Y-m-d H:i:s’);
// Using a timestamp ( with php getTimestamp() function as method) \(order_timestamp_created = \)order_data[‘date_created’]->getTimestamp(); \(order_timestamp_modified = \)order_data[‘date_modified’]->getTimestamp();
\(order_discount_total = \)order_data[‘discount_total’]; \(order_discount_tax = \)order_data[‘discount_tax’]; \(order_shipping_total = \)order_data[‘shipping_total’]; \(order_shipping_tax = \)order_data[‘shipping_tax’]; \(order_total = \)order_data[‘total’]; \(order_total_tax = \)order_data[‘total_tax’]; \(order_customer_id = \)order_data[‘customer_id’]; // … and so on
BILLING INFORMATION:
\(order_billing_first_name = \)order_data[‘billing’][‘first_name’]; \(order_billing_last_name = \)order_data[‘billing’][‘last_name’]; \(order_billing_company = \)order_data[‘billing’][‘company’]; \(order_billing_address_1 = \)order_data[‘billing’][‘address_1’]; \(order_billing_address_2 = \)order_data[‘billing’][‘address_2’]; \(order_billing_city = \)order_data[‘billing’][‘city’]; \(order_billing_state = \)order_data[‘billing’][‘state’]; \(order_billing_postcode = \)order_data[‘billing’][‘postcode’]; \(order_billing_country = \)order_data[‘billing’][‘country’]; \(order_billing_email = \)order_data[‘billing’][‘email’]; \(order_billing_phone = \)order_data[‘billing’][‘phone’];
SHIPPING INFORMATION:
\(order_shipping_first_name = \)order_data[‘shipping’][‘first_name’]; \(order_shipping_last_name = \)order_data[‘shipping’][‘last_name’]; \(order_shipping_company = \)order_data[‘shipping’][‘company’]; \(order_shipping_address_1 = \)order_data[‘shipping’][‘address_1’]; \(order_shipping_address_2 = \)order_data[‘shipping’][‘address_2’]; \(order_shipping_city = \)order_data[‘shipping’][‘city’]; \(order_shipping_state = \)order_data[‘shipping’][‘state’]; \(order_shipping_postcode = \)order_data[‘shipping’][‘postcode’]; \(order_shipping_country = \)order_data[‘shipping’][‘country’];
// Get an instance of the WC_Order object \(order = wc_get_order(\)order_id);
// Iterating through each WC_Order_Item_Product objects foreach (\(order->get_items() as \)item_key => $item ):
endforeach;
”`