WooCommerce – проверка количества покупок клиентом

ВОПРОС

Я использую функцию  wc_customer_bought_product()функцию, чтобы проверить, купил ли текущий пользователь определенный продукт.

Однако теперь мне нужно проверить, сколько этого продукта купил клиент.

Как мне этого добиться?

ОТВЕТ

Здесь у вас есть все материалы для создания своей собственной функции. Ниже приведен пример с функцией, которая будет получать количество продукта в заказе на основе идентификатора продукта для текущего клиента, используя функцию wc_customer_bought_product():

functionchecking_product_bought( $_product_id ){

 

    global$woocommerce, $posts;

 

    // Get the current customer info (as an object)

   $customer      = wp_get_current_user();

   $customer_id   = $customer->ID;// customer ID

    $customer_email = $customer->email; // customer email

 

    // Get all orders for this customer_id

   $customer_orders = get_posts( array(

        ‘numberposts’=> -1,

        ‘meta_key’    => ‘_customer_user’,

        ‘meta_value’  => $customer_id,

        ‘post_type’   => wc_get_order_types(),

        ‘post_status’=> array_keys( wc_get_order_statuses() ),

    ) );

 

    if( $customer_orders ){

 

        foreach( $customer_orders as$customer_order ) {

           $order        = wc_get_order();

           $order_id     = $order->id; // get the order ID )or may be “order->ID”)

           // getting all products items for each order

           $items = $order->get_items();

 

           foreach($items as$item)

           {

               $product_id = $item[‘product_id’]; // product id

               $product_qty = $item[‘qty’]; // product quantity

 

               if(wc_customer_bought_product( $customer_email, $customer_id, $_product_id))

               {

                    echo ‘<div>for order number: ‘. $order_id . ‘ ,there is ‘. $product_qty . ‘ for this product.’;

                }

 

            }

 

        }

 

    }

 

}