We already talked about displaying the total number of sales for a given product ID, however what if you just want to calculate sales in the last week?
This is a much better option when you have a busy WooCommerce shop and want to increase your sales conversion rate.
So, here’s the snippet – paste to your functions.php and enjoy!

PHP Snippet: Display Number of Sales in the Last Week @ WooCommerce Single Product Page
/**
* @snippet Product Sales Last Week - WooCommerce Single Product Page
* @how-to businessbloomer.com/woocommerce-customization
* @author Rodolfo Melogli, Business Bloomer
* @compatible WooCommerce 3.6.4
* @community https://businessbloomer.com/club/
*/
add_action( 'woocommerce_single_product_summary', 'bbloomer_product_sold_count_1_week', 11 );
function bbloomer_product_sold_count_1_week() {
global $product;
// GET LAST WEEK ORDERS
$all_orders = wc_get_orders(
array(
'limit' => -1,
'status' => array_map( 'wc_get_order_status_name', wc_get_is_paid_statuses() ),
'date_after' => date( 'Y-m-d', strtotime( '-1 week' ) ),
'return' => 'ids',
)
);
// LOOP THROUGH ORDERS AND SUM QUANTITIES PURCHASED
$count = 0;
foreach ( $all_orders as $all_order ) {
$order = wc_get_order( $all_order );
$items = $order->get_items();
foreach ( $items as $item ) {
$product_id = $item->get_product_id();
if ( $product_id == $product->get_id() ) {
$count = $count + absint( $item['qty'] );
}
}
}
if ( $count > 0 ) echo "<p>Recent sales: $count</p>";
}
Any option for show the total money spent? Not products, only the money of sales. Please i need it 🙂
Thinking out loud…. you could multiply $count by the product price?
Hi,
Shouldn’t $count be set to 0 inside the first foreach instead of before it?
No, because I don’t want to reset the count every time I “read” a new order, that’s why it’s initialized before the first foreach. Does this help?
Is there a way to show this for each product variation? The value that it returns is total sales I would want to see it by each varitaion.
Hi Scott, thanks so much for your comment! Yes, this is definitely possible, but I’m afraid it’s custom work. If you’d like to get a quote, feel free to contact me here. Thanks a lot for your understanding!
Hey,
thanks for this type of solution for product sale but can we show this functionality using shortcode in page anywhere of particular product id and also can we show sale of last hour only in single day
Thanks
Hi Pawan, thanks so much for your comment! Yes, this is definitely possible, but I’m afraid it’s custom work. If you’d like to get a quote, feel free to contact me here. Thanks a lot for your understanding!
this is great man, but is it possible to convert 1000 to K or XX so instead showing 1000 , is 1K or 1XX .
Hey Reynaldo, thanks so much for your comment! Yes, this is definitely possible, but I’m afraid it’s custom work. If you’d like to get a quote, feel free to contact me here. Thanks a lot for your understanding!
Thank you very much, I just have a question, if I want to show the sales of the last month, I just have to change “‘-1 week'” to ‘-4 week’ and that’s it?
Yep!
Hi,
Do you have a similar snippet that would simply display the names of the most recent orders which could be displayed anywhere on a site?
Hi Sven, thanks so much for your comment! Yes, this is definitely possible, but I’m afraid it’s custom work. If you’d like to get a quote, feel free to contact me here. Thanks a lot for your understanding!
This is really help to give a boost for social proof! Thanks for Sharing Rodolfo! Will apply this in my store later.
Great!