Skip to content

Instantly share code, notes, and snippets.

@kohki-shikata
Last active December 16, 2015 03:19
Show Gist options
  • Star 3 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save kohki-shikata/5369487 to your computer and use it in GitHub Desktop.
Save kohki-shikata/5369487 to your computer and use it in GitHub Desktop.
WordPress Shortcode counts attendance from a Zusaar event
function zusaar_count($atts){
extract(shortcode_atts(array(
'zid' => null
), $atts));
// return $zid;
define("ZUSAAR_API_EVENT_URI", "http://www.zusaar.com/api/event/?event_id="); //イベント自体のデータを取得。開催日時の取得用
define("ZUSAAR_API_USER_URI", "http://www.zusaar.com/api/event/user/?event_id="); //イベント出席者のデータを取得
$today = time(); // 現在の日付を確認
$event_date = file_get_contents(ZUSAAR_API_EVENT_URI . $zid); //イベントのデータを取得
$event_date = json_decode($event_date , true); //JSONを連想配列に返す
$start = $event_date[event][0][started_at]; //開催日時の入っている配列
$start = strtotime($start); //UNIX時に変換
if($start > $today){ // 本日が開催時より前の状況では、以下の出席状況表示を開始。開催時より後は何も出力しない
if(!is_null($zid)){
$json = file_get_contents(ZUSAAR_API_USER_URI . $zid);
$data = json_decode( $json , true ); //連想配列を返す
$limit = $data[event][0][limit]; //定員数
$current = $data[event][0][accepted]; //現在の申込数
$waiting = $data[event][0][waiting]; //キャンセル待ち発生時は、キャンセル待ち数
$left = $limit - $current; //定員に達していない場合の、残席数
/*
echo "今日".$today . "<br>";
echo "開始日時" .$start;
*/
if($limit == $current){
//満席の時の表示内容
return "<p>現在満席です。<strong>" . esc_html($waiting) . "名</strong>の方がキャンセル待ちをしています。</p>";
}else{
//残席がある時の表示内容
return "<p>あと<strong>" . esc_html($left) . "名</strong>様募集中です。</p>";
}
}
}
}
add_shortcode('zusaar','zusaar_count');
@kohki-shikata
Copy link
Author

使い方:
functions.php にコピペ

ZusaarのイベントURLからイベントIDをコピー
event/の後の数字です
http://zusaar.com/event/00000000←ここ

WordPressの記事中で[zusaar zid=00000000]と書く

@kohki-shikata
Copy link
Author

2013/5/28 更新
イベント開催日を過ぎると表示を消すようにしました

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment