Welcartで購入された数を表示する。
色々話題のグルーポンをちょっと覗いてみたのですが、その中に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++;}
に変更してみてください。
こんばんは。
情報をいつもありがたく拝見しております。
こちらの、記事の通りに、Functionをいれこみ、実行を行いましたが、エラーが出てしまいます。
現在のバージョンでは、不可能な事象なのでしょうか?