[英]How to query Woocommerce orders on a page
我想創建一個頁面,該頁面顯示來自數據庫的查詢以顯示一些訂單詳細信息。
如何在頁面上顯示此查詢?
有多種方式獲得Woocommerce訂單:
1)Woocommerce有一個專用的函數wc_get_orders()
,它將為您提供WC_Order對象的數組:
$orders = wc_get_orders( array('numberposts' => -1) );
// Loop through each WC_Order object
foreach( $orders as $order ){
echo $order->get_id() . '<br>'; // The order ID
echo $order->get_status() . '<br>'; // The order status
}
要獲取訂單數據,請參見以下鏈接
2)您也可以使用Wordpress WP_Query
:
$loop = new WP_Query( array(
'post_type' => 'shop_order',
'post_status' => array_keys( wc_get_order_statuses() ),
'posts_per_page' => -1,
) );
// The Wordpress post loop
if ( $loop->have_posts() ):
while ( $loop->have_posts() ) : $loop->the_post();
// The order ID
$order_id = $loop->post->ID;
// Get an instance of the WC_Order Object
$order = wc_get_order($loop->post->ID);
endwhile;
wp_reset_postdata();
endif;
要獲取訂單數據,請參見以下鏈接
3)您可以使用SQL查詢
global $wpdb;
$results = $wpdb->get_results("SELECT * FROM {$wpdb->prefix}posts WHERE post_type LIKE 'shop_order'");
// Loop through each order post object
foreach( $results as $result ){
$order_id = $result->ID; // The Order ID
// Get an instance of the WC_Order Object
$order = wc_get_order( $result->ID );
}
您將能夠從WC_Order
對象獲取所有訂單詳細信息,如下所述:
在表中將數據顯示為列表
要在列表中顯示訂單,您應該查看woocommerce棄用的模板myaccount / my-orders.php或myaccount / orders.php模板 ……
它將為您提供模型...
只要它是最后執行的查詢,就可以使用$wpdb->last_query
來獲取最后一個查詢。 define('SAVEQUERIES', true)
您需要在wp-config.php
具有define('SAVEQUERIES', true)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.