2017-11-02 10 views
1

WooCommerce内のすべての商品を、特定の日付以降の人気(総売上)から注文したいと考えています。WPクエリ注文WooCommerce商品の合計売上高から

$args = array(
    'post_type' => 'products', 
    'posts_per_page' => 2000, 
    'orderby' => 'meta_value_num', 
    'meta_key' => 'total_sales', 
    'order' => 'desc', 
    'date_query' => array(
     'column' => 'order_date', 
     array(
     'after' => 'April 1st 2017', 
    ), 
), 
); 
$products = new WP_Query($args); 

if ($products->have_posts()) { 
    while ($products->have_posts()) : $products->the_post(); 
    the_title(); 
    echo '<br>'; 
    endwhile; 
} 

このクエリは、April 1st 2017以来April 1st 2017、合計ではなく、製品の販売以降に追加された人気順すべての製品を返します。

+0

下記の私の答えを参照してください、私は私のポストを更新代わりにproduct' –

答えて

0

があなたの望むところに間違っているようです。あなたがproductを照会している

代わりに、それはshop_orderする必要があります:

$args = array(
    'post_type' => 'shop_order', 
    'posts_per_page' => 2000, 
    'orderby' => 'meta_value_num', 
    'meta_key' => 'total_sales', 
    'order' => 'desc', 
    'date_query' => array(
     'column' => 'order_date', 
     array(
     'after' => 'April 1st 2017', 
    ), 
), 
); 
+0

'のshop_order''を照会してみてくださいすべてのコードを含みますが、 'shop_order'という言葉を使用しても結果は返されません。 – SamXronn

+0

'wp_posts'テーブルデータの例を得ることができますか?' shop_order'投稿にtotal_salesが含まれているのだろうか –

+0

データベースに総売上がないことを確認できます – SamXronn

-1

私はあなたがpost_type =順序を使用することがあると思います。

$args = array(
    'post_type' => 'shop_order', 
    'posts_per_page' => 2000, 
    'orderby' => 'meta_value_num', 
    'meta_key' => 'order_total', 
    'order' => 'desc', 
    'date_query' => array(
     'column' => 'post_date', 
     array(
     'after' => 'April 1st 2017', 
    ), 
), 
); 
+0

'order'を' post_type '返さない結果 – SamXronn

+0

私は自分の答えを編集することができますあなたはもう一度チェックすることができます – Jinesh

+0

あなたの更新された答えをお寄せいただきありがとうございます。 – SamXronn

0

このクエリを使用して、特定の日付の間でベストセラー製品を得ることができます。

$query_str = "SELECT order_item_meta_2.meta_value as product_id, SUM(order_item_meta.meta_value) as line_total 
     FROM wpfi_woocommerce_order_items as order_items 
     LEFT JOIN wpfi_woocommerce_order_itemmeta as order_item_meta ON order_items.order_item_id = order_item_meta.order_item_id 
     LEFT JOIN wpfi_woocommerce_order_itemmeta as order_item_meta_2 ON order_items.order_item_id = order_item_meta_2.order_item_id 
     LEFT JOIN wpfi_posts AS posts ON order_items.order_id = posts.ID 
     WHERE posts.post_type = 'shop_order' 
     AND posts.post_date BETWEEN '".$previous_date."' AND '".$current_date."' 
     AND posts.post_status IN ('wc-completed') 
     AND order_items.order_item_type = 'line_item' 
     AND order_item_meta.meta_key = '_line_total' 
     AND order_item_meta_2.meta_key = '_product_id' 
     GROUP BY order_item_meta_2.meta_value LIMIT 5"; 
関連する問題