WooCommerce has the options to display the best selling products of all time, but this can be a problem, as some of our products may have sold very well in a short period, and will then be displayed all the time.
I want to show the top selling products in WooCommerce for the last 30 days.
What the code is missing is the part where you get sales in a certain period of time. The meta_query should be the key to do this but I'm not sure how. Any help or point in the right direction is appreciated.
<?php
$args = array(
'post_type' => 'product',
'posts_per_page' => 4,
'meta_key' => 'total_sales',
'orderby' => 'meta_value_num',
);
$loop = new WP_Query( $args );
if ( $loop->have_posts() ) {
while ( $loop->have_posts() ) : $loop->the_post();
woocommerce_get_template_part( 'content', 'product' );
endwhile;
} else {
echo __( 'No products found' );
}
wp_reset_postdata();