If you’re developing custom landing pages or sections dedicated to logged in customers, knowing the quantity purchased of a certain product ID might come useful.
From this snippet you can learn lots of things, for example how to create custom shortcodes, how to get customer orders, and how to set up a foreach loop in PHP. Either way, enjoy!
Count how many times a WooCommerce product ID was purchased by current logged in customer
PHP Snippet: Count How Many Times a Product ID Was Purchased by Current User (WooCommerce Shortcode)
/**
* @snippet Count Product ID Purchases - WooCommerce Shortcode
* @how-to Get tutoraspire.com FREE
* @author Tutor Aspire
* @compatible WooCommerce 3.6.2
* @donate $9 https://tutoraspire.com
*/
// SHORTCODE SYNTAX: [product_purchases id="123"]
add_shortcode( 'product_purchases', 'tutoraspire_user_logged_in_product_bought' );
function tutoraspire_user_logged_in_product_bought( $atts ) {
// GET PRODUCT ID FROM SHORTCODE
$atts = shortcode_atts( array(
'id' => '0'
), $atts );
// GET CURRENT USER ORDERS
$current_user = wp_get_current_user();
$customer_orders = wc_get_orders(
array(
'limit' => -1,
'status' => array( 'completed', 'processing'),
'customer' => get_current_user_id(),
)
);
// LOOP THROUGH ORDERS AND SUM QUANTITIES PURCHASED
$count = 0;
foreach ( $customer_orders as $customer_order ) {
$order = wc_get_order( $customer_order->get_id() );
$items = $order->get_items();
foreach ( $items as $item ) {
$product_id = $item->get_product_id();
if ( $product_id == $atts['id'] ) {
$count = $count + absint( $item['qty'] );
}
}
}
// RETURN HTML
return 'You purchased: ' . $count . ' items';
}