How to get all order details in wordpress/woocommerce?
本问题已经有最佳答案,请猛点这里访问。
我正在使用woo-commerce并试图从数据库中获取所有订单详细信息。我是新手,无法实现它。我已经创建了
有人可以帮我吗?
自Woocommerce大型重大更新3.0版以来,事情发生了很大变化:
- WC_Order属性不能像以前一样直接访问,并且会引发一些错误。
- 现在需要新的WC_Order和WC_Abstract_Order getter和setter方法。
-
订购商品有一些新类别:
-
WC_Order_Item类。
-
WC_Order_Item_Product类。
-
因此,订单项属性也将无法像以前一样在foreach循环中访问,因此您将不得不使用此特定的getter和setter方法。
1 2 3 4 5 6 7 8 | // Get an instance of the WC_Order object (same as before) $order = wc_get_order( $order_id ); // Get the order ID $order_id = $order->get_id(); // Get the custumer ID $order_id = $order->get_user_id(); |
获取并访问订单数据属性(值数组):
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 | $order = wc_get_order( $order_id ); $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['cart_tax']; $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']; |
获取订单商品并使用WC_Order_Item_Product和WC_Order_Item方法访问数据:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 | $order = wc_get_order($order_id); // Iterating through each WC_Order_Item_Product objects foreach ($order->get_items() as $item_key => $item_values): ## Using WC_Order_Item methods ## // Item ID is directly accessible from the $item_key in the foreach loop or $item_id = $item_values->get_id(); ## Using WC_Order_Item_Product methods ## $item_name = $item_values->get_name(); // Name of the product $item_type = $item_values->get_type(); // Type of the order item ("line_item") $product_id = $item_values->get_product_id(); // the Product id $wc_product = $item_values->get_product(); // the WC_Product object ## Access Order Items data properties (in an array of values) ## $item_data = $item_values->get_data(); $product_name = $item_data['name']; $product_id = $item_data['product_id']; $variation_id = $item_data['variation_id']; $quantity = $item_data['quantity']; $tax_class = $item_data['tax_class']; $line_subtotal = $item_data['subtotal']; $line_subtotal_tax = $item_data['subtotal_tax']; $line_total = $item_data['total']; $line_total_tax = $item_data['total_tax']; endforeach; |
尝试此代码。
1 2 3 4 5 6 7 8 | $args = array( 'post_type' => 'shop_order', 'posts_per_page' => '-1' ); $my_query = new WP_Query($args); $orders = $my_query->posts; echo" |
";
print_r($ orders);
回声"
1 | "; |
自定义为Ur Requerment。
将状态更改为woocoommerce状态
您可以使用下面的代码
1 2 3 4 5 6 7 8 |
您需要包含
1 |
并在此代码之前将全局变量添加为