WooCommerce: cuenta las compras de los usuarios por ID de producto (código corto)

Si está desarrollando páginas de destino personalizadas o secciones dedicadas a los clientes registrados, conocer la cantidad comprada de un determinado ID de producto puede ser útil.

Ya vimos cómo detectar si un cliente registrado ha comprado un producto determinado , así como un fragmento para devolver todos los productos comprados por un usuario específico , pero esta vez quiero «contar» cuántas veces un usuario actual ha comprado un ID del producto y devuélvalo a la pantalla a través de un código abreviado.

A partir de este fragmento, puede aprender muchas cosas, por ejemplo, cómo crear códigos abreviados personalizados, cómo obtener pedidos de clientes y cómo configurar un bucle foreach en PHP. De cualquier manera, ¡disfrútalo!

Cuente cuántas veces un cliente registrado actual compró una identificación de producto de WooCommerce

Fragmento de PHP: cuente cuántas veces el usuario actual compró una ID de producto (código abreviado de WooCommerce)

/**
 * @snippet       Count Product ID Purchases - WooCommerce Shortcode
 * @how-to        Get CustomizeWoo.com FREE
 * @author        Rodolfo Melogli
 * @compatible    WooCommerce 3.6.2
 * @donate $9     https://businessbloomer.com/bloomer-armada/
 */
 
// SHORTCODE SYNTAX: [product_purchases id="123"]
  
add_shortcode( 'product_purchases', 'bbloomer_user_logged_in_product_bought' );
  
function bbloomer_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 '<b>You purchased: ' . $count . ' items</b>';
    
}

Deja un comentario