【WordPress】EventManagerで予約項目を増やす方法

EventManagerというプラグインで予約するときの項目を増やす方法です。

wp-content/plugins/events-manager/em-functions.php
テキストエディタで開いて下さい。

ここでは住所を追加したいと思います。
以下のコードを追記して下さい。

function bweb_add_custom_event_fields(){
	?>
		<p>
			<label for='user_company'><?php esc_html_e('住所', 'textdomain'); ?></label>
			<input type="text" name="user_company" id="user-company"  class="input" value="<?php if(!empty($_REQUEST['user_company'])) echo esc_attr($_REQUEST['user_company']); ?>" />
		</p>

	<?php
}
add_action('em_register_form','bweb_add_custom_event_fields');


function  bweb_save_custom_event_fields (){
	global $EM_Booking ;
	if( ! empty( $_REQUEST['user_company'] ) ){
			$EM_Booking->booking_meta['registration']['user_company'] = wp_kses( $_REQUEST['user_company'], array() );
	}
}
add_filter('em_booking_add','bweb_save_custom_event_fields');	


function bweb_table_custom_event_fields($template, $EM_Bookings_Table){
        $template['user_company'] = __('住所', 'textdomain');
        return $template;
}
add_action('em_bookings_table_cols_template', 'bweb_table_custom_event_fields',10,2);
 
 
function bweb_display_col_custom_event_fields($val, $col, $EM_Booking, $EM_Bookings_Table, $csv){
        if( $col == 'user_company' ){
                $val = $EM_Booking->get_person()->user_company;               
        }
        return $val;
}
add_filter('em_bookings_table_rows_col','bweb_display_col_custom_event_fields', 10, 5);

上記コードにある二箇所の「住所」を好きな項目に変更してください。
閉じてアップロードすれば項目が追加されたはずです。

データベースにも追加されますので、管理画面の予約管理→歯車を押せば項目をドロップすればCMSに落とす際にも追加されます。



※追記です
自動返信メールで上記で追加した項目のプレースホルダーが必要かと思います。その場合は、
wp-content/plugins/events-manager/classes/em-booking.php
1029行目あたりからメールで使えるプレースホルダーの設定がありますので

				case '#_RESCOMPANY' : //deprecated
				case '#_BOOKINGCOMPANY':
					$replace = $this->get_person()->user_company;
					break;

を追加してアップロードして下さい。
これでメール設定で#_BOOKINGCOMPANYが使えるようになります。

bbpress sort topic repliesを利用したときリダイレクトを最初のページにする

引き続きWordPressプラグインbbpress について

bbpress のトピック内のReplyは通常昇順に表示されるのがデフォルトですが追加プラグイン
bbpress sort topic replies
を使えば昇順を降順(新しい日付が最初)に変更することが可能です。
※設定については検索すると出てきますのでここでは省略します。(簡単です)

問題はトピックのReply数が数ページに渡った時。
bbpress のデフォルトでは新しい返信を投稿すると、一番大きいページ(最終ページ)に飛ぶという設定になっています。
正しくは「最終ページ+さっき投稿したID」

しかし昇順に変えた時は最初のページに新しい返信がつくので最後のページに飛ぶというのは挙動としてダメです。
以下で最初のページに飛ぶことが出来ます。

1.FTPで以下のファイルをダウンロードして下さい
wp-content\plugins\bbpress\includes\replies\functions.php

2.functions.phpテキストエディタで開いて下さい。

<?php
....
		// Allow to be filtered
 		$reply_url = apply_filters( 'bbp_new_reply_redirect_to', $reply_url, $redirect_to, $reply_id );
...
?>

438行目のこの箇所を

<?php
....
		// Allow to be filtered
		//修正前	$reply_url = apply_filters( 'bbp_new_reply_redirect_to', $reply_url, $redirect_to, $reply_id );
 		$reply_url = apply_filters( 'bbp_new_reply_redirect_to', $redirect_to );

...
?>

に変更してアップロードすればOK。
WordPressのアップデートがあった場合はわかりませんが、もし不具合が起きたときは//修正前~の行を復活させて下さい。
自己責任でお願いしますよ~

WordPressのbbpressで古いトピックを自動的にクローズにする方法

とても便利で有名なbbpressですが、日本での掲示板としての使い方であと一歩!といったところもありますよね。

 
その一つが、

手動でクローズにしない限り「永遠に返信ができちゃう」!

古いトピックを自動的にクローズにする
・最終更新がX日経過したものは自動でクローズ状態になる方法を紹介します。

とても簡単なのでWordPress初心者の方でも設定できると思います。

 

テキストエディタで新規作成、以下を記入して下さい。

<?php 

/*
Plugin Name: BBPress Close Old Posts
Description: Close BBPress 2.0+ posts that haven't been updated in X days. 
Author: meijiro
Version: 0.1
*/ 

register_activation_hook(__FILE__, 'bbpress_topic_scheduler');

add_action('bbpress_daily_event', 'bbpress_close_old_topics');

function bbpress_topic_scheduler() {
 wp_schedule_event(time(), 'daily', 'bbpress_daily_event');
}

function bbpress_close_old_topics() {
	// Auto close old topics
	$topics_query = array(
		'author' => 0,
		'show_stickies' => false,
		'parent_forum' => 'any',
		'post_status' => 'publish',
		'posts_per_page' => -1
	);
	if ( bbp_has_topics( $topics_query ) )
		while( bbp_topics() ) {
			bbp_the_topic();
			$topic_id = bbp_get_topic_id();
			$last_active = strtotime( get_post_meta( $topic_id, '_bbp_last_active_time', true ) );
			if ($last_active < strtotime( '-10 days') )
				bbp_close_topic( $topic_id );
		}
}
?>

デフォルトでは10日以上更新のないトピックは自動でクローズにすることになっていますので

if ($last_active < strtotime( '-10 days') )

の-10 daysを好きな日数に変更。

記入したらPHP形式で「close_old_topics.php」という名前で保存。
さらにclose_old_topicsというフォルダを作ってclose_old_topics.phpを入れる。

FTPでwp-content\plugins に入れます。
あとはWordPressダッシュボード/プラグインでclose_old_topicsを有効にすればOKです。

人狼が賑わっている

一時期は仕事もままならない程人狼のことしか考えられない状態でしたが、最近はめっぽう見る専です。人狼殺というアプリはすごく良かったんですが実況されていることがあり(人狼をプレイする人が増えることは嬉しい)、実況配信では公平なゲームにならないので萎えてしまいました。

それでも朝起きて一番最初に考えるのが人狼のことなので、一生人狼の虜なのかもしれません。人狼のせいで全く勉強が出来ずに浪人した人がいましたが、彼は今どうしているんだろう笑

 

数年前にウラナイトという言葉が流行っていたのですが、連続ガード有り・役欠け無しの条件でナイト(騎士)が占いを騙って21進行になった時、占いを一生守れるのでめちゃくちゃ強いという戦術を流行らした人がいました。

これにはリスクがあって、占いを騙っているナイトが自分の役を明らかにしないまま噛まれてしまった時に一方の占いが偽を追われてしまうので意味がない&人狼陣営に騎士騙りされる懸念から賛否両論ありました。

私はこういう新しい戦術や奇策を出すのはゲーム自体の発展としてすごく良いと思います。

 

それを踏まえて以前人狼殺にて9人村をやっていたときに、奇策と言えるかわかりませんが割と有効だったのでメモっておきます。

 

■9人村(狼2・占1・狂1・村3・騎1・ハンター1)

■初日占い有り/連続ガード無し

自分【狂人】のケース

 

初日 

3名が占いCO・・狼→真→狂人の順でCO

狼と真は白だし、狂人がグレーから【黒出し】

 

狂人の私が村に訴えたこと

占い師(本当は狂人)の私目線、占いCOしている残りの二名から1狼確定、グレーの狼1も見つけた事から狼2・狂人1の全人外露出した上でCOしたことを説明。9人4縄なので、私を吊っても村がミスらなければ勝ち確定ですということをお話しました。そして、私が黒出しした人以外の全員が白だと分かっている事を強調、残りの占いCOしている二人は確実に白のあなたたちの誰かに黒を打ってきます(じゃないと人外は勝てないので)と話しました。これは村陣営の人たちが黒を打たれるかもしれないという恐れを煽って私が味方であるということ刷り込んだつもりです。

 

村側の推理はこうなります。

私が狂人・・・狂人の3CO目はご主人様(狼)の足をひっぱる行動なので考え難い

私が狼・・・・全人外露出したということから一番最初にロラされるのに狼でそれをやるとは考え難い

→真目が高い

結果、初日私吊り、次の日に真占いが狼を見つけたにもかかわらず吊られ、狼を勝たせることが出来ました。

人狼ゲームの常識によって村は最後まで私の偽を追うことが出来なかったんですよね。

 

しかし、この戦術にはリスクが有り、誤爆していたら真占い師が村に2名いることになり高い確率で負けます笑

そして騎士に黒出ししていたらグレーにいる狼が対抗COしない限り私の偽が確定します。ハンターに黒を打ったらグレーの狼が対抗COするわけにも行かないのでハンターに誤爆した時点で私の偽が確定します。(ハンターが吊られても対抗狼を撃ち殺せるので)→ハンターって強すぎない?

つまり確実に3人の村人の中から黒を出さないといけない、危険な戦術ですね。たまたまうまくいったのですが、失敗して叩かれる勇気のある方は試してみてはいかがでしょうか笑 ハマると村はレアケを追わないといけなくなり、高い確率で勝ちにもっていけます。

逆にこういった盤面で真占い師が発言で真目を勝ち取れたりするとかっこいいですよね。

好きな人狼プレイヤー

人狼ゲームでは論理的思考と情報処理能力と民意誘導(発言力)に長けている人が強いと呼ばれている人だと思うのですが個人的に好きなプレイヤーをご紹介します。

 

・古川洋平さん

ãå¤å·æ´å¹³ãã®ç»åæ¤ç´¢çµæ

常に論理的で分かりやすい説明が魅力的で凄まじい誘導力を持っている方ですが、何よりどうしても人の嫌な面が出てしまいがちな人狼ゲームでこれほどまで他人を尊重したプレイができる人っていない気がします。例えば誰からみても怪しい位置にいる人に対しても、弁明を真摯に受け止める姿勢をされています。どの陣営になっても圧倒的な実力があるのに誰も不快にしないプレイ、ネタも面白いし普段の姿も含め本当に素敵な人ですよね。あと超絶かわいいし。

 

・スナパイさん

f:id:meijiro:20180825152809p:plain

オンライン人狼の覇者として有名ですね。人狼最大トーナメントで初めて見た時、彼の言葉の魔力に衝撃を受けました。もはやスナパイさんの思考回路についてはアホな自分はついていけないくらいの上級プライヤーさんですが、何より魅せる人狼としての頂点はこの方じゃないかと思っています。色んな戦術を生み出しており、狼全員占いCOの回は圧巻でした。奇策は観戦者にとっては勝ち負けを超える楽しさがあります。

そしてスナパイさんは言葉一つ一つが舞台の台本のように完璧なんですよね。そういったエンターテイメント性も踏まえていらっしゃることから、スナパイさんが出ているから見るという人も多いんじゃないでしょうか。

 

・高田健志さん(神)

f:id:meijiro:20180825152833p:plain

この方がいるだけで絶対面白いんですよね。すごい。人狼も突き詰めていらっしゃるようでどんどん強くなっていきましたよね。ただ私がこの人を好きな理由は簡単には流されない意思です笑 高田さんの場合は実生活でも自分を信じて世間の常識に流されていないからこそなんじゃないかと思うわけです。村がまずい方向に流れているときに救世主になり得るし、人狼側は一度目をつけられたら彼への説得はものすごく難しい。不確定要素に頼らず安全進行を好んでいる点も好感を持てます。

 

・うめけん/ポールさん

人狼ハウスの方で日々人狼をされているからか、死ぬほど強いですよね。お二人ともいつも冷静で説得されると逆に疑ってしまいそうですが笑 出来る限り感情論を持ち込まない姿勢が好きなのです。推理はもはや神業といって良いじゃないでしょうか。

 

その他にも、こくじんさん・オオヌキさん・村中秀史さん・ハイブリッドセンスさん・飴猫さん・貞升南さん・サカナさん・デイジーさん・はなうささん・児玉さんなど...またの機会に。

 

アルティメット・スリアロ・人狼最大トーナメントを観ていますが、人狼最大トーナメントのルールが一番良いんじゃないかと個人的には思います。その理由は質疑応答があることで、大勢の中で割って入って喋るという能力が無くとも十分に活躍できるルールになっているからです。人狼ゲームは声が大きい人が有利な側面がありますから・・・

 

 

 

 

 

お疲れさまですー

長年の友人がサインを出していたのに気付けず、Aviciiがきっかけでちゃんと話が聞けました。この人随分前から限界やったんやと。生きるのが上手くて商売上手と思っていたのにそうではなかったようで。才能がある人は調子のいいクズになれたら最強なのですが、クズになっても幸せじゃないって本能で分かってるんですね。生きるためにするはずの仕事に殺されたら本末転倒です。でもどうしたってクズになれなくて正解だと思います。

二人人狼を考えました

ゴールデンウィーク前の迫り狂う納期で久々の徹夜でした。懲りずに途中サボりながら最小人数2名で出来る人狼を考えました。どうでしょ!

 

【進行】

○市民と狼の紙を数枚(狼1市民3くらいがいいかな)用意してランダムで選ぶ

○2人で話し合い相手の役職を推理

○市民のみに追放権が付与されており、相手が狼だと判断した場合は使用

 

【勝敗】

狼‐市民・・・狼に追放権なし。市民が相手を狼だと見抜いて狼を追放できれば勝ち。

市民‐市民・・・両者追放権あり。お互いに市民だと推理して追放権を使用しなければ勝ち。どちらかが追放権を使ったら使った方が負け。

 

【面白くないかもな点】

相手が狼か見抜くための手段がメタ要素のみになりそう。市民‐狼が同数で既に人狼ゲームではない。けどそこは多めに見てくださいよっと!

 

【良さそうな点】

GMがいらない。

騙されているのか否かという心理合戦が味わえる。んで信用して互いを殺さないという選択肢=協力プレイでもある。色々面白さが敷き詰まってるんじゃないかと思うのですが…どこかで実践してみたいです。