获取给定产品的总订单量

时间:2017-03-10 20:41:50

标签: php wordpress woocommerce product orders

我正在使用WooCommerce并且我一直在使用此代码:

$units_sold = get_post_meta( get_the_ID(), 'total_sales', true );

此元数据返回已售出商品的数量。因此,如果有人购买了两件商品,那么它会返回两件商品。我想获得一个产品的订单数量,而不是销售的单位数量。

你知道我怎样才能轻松有效地获得这个数字?

谢谢

1 个答案:

答案 0 :(得分:1)

这是一个自定义函数,它将返回一个产品的订单数量。您有 $product_id 作为参数:

function get_orders_count_for_a_product( $product_id ){

    $orders = wc_get_orders( array(
        'numberposts' => -1,
        'post_type' => 'shop_order',
        'post_status' => array('wc-completed') // completed status only
    ) );

    $count_orders = 0;
    foreach($orders as $order){
        $has_product = false;
        foreach($order->get_items() as $item_values)
            if( $item_values['product_id'] == $product_id )
                $has_product = true;
        if( $has_product )
            $count_orders++;
    }
    return $count_orders;
}

代码放在活动子主题(或主题)的function.php文件中,或者放在任何插件文件中。

  

用法:

// Here Product ID is 125
$the_product_id = 125; 
$number_of orders = get_orders_count_for_a_product($the_product_id);
// Output the value
echo 'Number of orders for product ID ' . $the_product_id . ' is: '. $number_of orders;