簡體   English   中英

如何在頁面上查詢Woocommerce訂單

[英]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.phpmyaccount / orders.php模板 ……

它將為您提供模型...

只要它是最后執行的查詢,就可以使用$wpdb->last_query來獲取最后一個查詢。 define('SAVEQUERIES', true)您需要在wp-config.php具有define('SAVEQUERIES', true)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM