WP查询订购WooCommerce产品的总销售额从日期开始

I want to return all products within WooCommerce ordered by their popularity (total sales) starting at a specific date.

$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;
}

This query returns all products ordered by popularity that have been added since April 1st 2017, not total product sales since April 1st 2017.

It looks like your post_type is wrong for what you want.

You're querying for product instead it should be 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',
      ),
  ),
);

I think you have to use post_type=order.

$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',
      ),
  ),
);

you can get best selling product between specific date by using this query :

 $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";