如何在页面上查询Woocommerce订单

Mic*_*lle 1 php mysql wordpress orders woocommerce

我想创建一个页面,该页面显示来自数据库的查询以显示一些订单详细信息。

如何在页面上显示此查询?

Loi*_*tec 5

有多种方式获得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
}
Run Code Online (Sandbox Code Playgroud)

要获取订单数据,请参见以下链接


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;
Run Code Online (Sandbox Code Playgroud)

要获取订单数据,请参见以下链接


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 );
}
Run Code Online (Sandbox Code Playgroud)

您将能够从WC_Order对象获取所有订单详细信息,如下所述:


在表中将数据显示为列表

要在列表中显示订单,您应该查看woocommerce弃用的模板myaccount / my-orders.phpmyaccount / orders.php模板 ……

它将为您提供模型...