新規ユーザー登録後に何かする方法【BuddyPress】
前回につづき、BuddyPressのカスタマイズについての記事です。
今回は、BuddyPressの会員登録後(新規ユーザー作成後)に特定の表示やアクションをするように会員登録画面のテンプレートをカスタマイズしてみたいと思います。
~ 目次 ~
会員登録中のテンプレートはregister.php
会員登録のテンプレートは、buddypress/members/register.phpです。これを編集します。
会員登録中の画面表示は「フォーム入力画面」もフォーム送信後の「確認メールからログインしてください」みたいな内容の画面もregister.phpが担っています。
bp_get_current_signup_step
同じファイルで幾つかの違う表示をしているわけですが、register.php内で独自関数の”bp_get_current_signup_step”を使用して、会員登録の現在のステップを判定して、コンテンツを出し分けているようです。
ユーザー登録後の「確認メールを送りました」的な画面で、ステップは”completed-confirmation”となっています。
という事で、この”completed-confirmation”というステップを判定して、この段階の表示に追加をしたり、この段階でJSを実行したりと、あれこれ出来ます。
サンプルコード
具体的には、下のサンプルコードのように記述すると良いと思います。register.php内に記述します。
何かを表示するなど処理を加えたい場合
表示したい箇所に下のように追記します。
1 2 3 |
<?php if( 'completed-confirmation' === bp_get_current_signup_step() ): // completed-confirmation signup step ?> <p>確認メールからログインしてねん!</p> <?php endif; // completed-confirmation signup step ?> |
JSで何かしたい場合は
1 2 3 4 5 6 7 |
<?php if( 'completed-confirmation' === bp_get_current_signup_step() ): // completed-confirmation signup step ?> <script> jQuery(window).ready(function(){ alert('ユーザーの新規登録が完了しました。'); }); </script> <?php endif; // completed-confirmation signup step ?> |
みたいな感じですね。(中身は適当ですが。。)
最後に
プラグインのファイルなんぞ、読み込み出すとキリが無いので、あまり深追いしていません。もっとスタンダードな方法がある!等の突っ込みは受け付けておりません。。
ちょっと調べてみると、bp-legacyだったりbp-nouveauだったりで、register.phpの記述内容がかなり違います。結構フックが用意してあるのですが、これもそれぞれ違うようです。上の方法はこの辺の違いには左右されなさそうなので、BuddyPressテーマ?(テンプレート?)が違っても使用できそうです。
ちなみに今回の記事の『ユーザー登録後』は、新規ユーザーの作成が終わった段階です。登録されたユーザーが”Activate”されたタイミングではありません。念のため。