Facebook にシェア
[`evernote` not found]
LINEで送る

色々話題のグルーポンをちょっと覗いてみたのですが、その中にXXX人の人が購入されました。
というメッセージが有りました。
そういやWelcartにベストセラーウィジェットはあるものの、購入数まで表示する関数はなかったなーと思い、自作してみました。

*注意 必ずWelcartをインストールした状態でご使用ください。また、データベースに直接アクセスしますので自己責任でお願いします。

function buycount($day,$post_id,$sku){
global $wpdb;
	$count=0;
	if(!$day){$day=7;}
	if(!$post_id){global $POST;$post_id = $POST->ID;}
	$table_name = $wpdb->prefix . 'usces_order';
	$date = date('Y-m-d 00:00:00',strtotime("-{$day} day"));
	$query = $wpdb->prepare("SELECT * FROM $table_name WHERE order_date >= %s", $date);
	$rows = $wpdb->get_results($query, ARRAY_A);
	foreach($rows as $row){
		$carts = unserialize($row['order_cart']);
		foreach($carts as $cart){
			if($post_id){$cart_id = $post_id;}else{$cart_id = $cart['post_id'];}
			if($sku){$cart_sku = $sku;}else{$cart_sku = $cart['sku'];}
			if($cart_id == $cart['post_id'] && $cart_sku == $cart['sku']){$count+=$cart['quantity'];}
		}
	}
	return $count;
}

以上をfunctions.phpにで放りこんで表示したい場所に

この商品は<?php echo buycount();?>個売れています。

等表示すればOKです。
引数は
$day 集計する日数。初期値7日。あまり大きくすると読み込むデータが増えるので重くなるかも。
$post_id 集計する商品のpost_id 初期値は表示するページのpost->ID
$sku 集計する商品のsku 初期値は空。

なお、これは商品の売上個数を表示します。もし、商品を買ってくれた人数を表示したいのなら

if($cart_id == $cart['post_id'] && $cart_sku == $cart['sku']){$count+=$cart['quantity'];}

if($cart_id == $cart['post_id'] && $cart_sku == $cart['sku']){$count++;}

に変更してみてください。