WordPressを会員制にしている場合、ユーザー登録完了後に自動的にログインさせてしまいたいことがあります。
Wordpressプラグイン Theme My Login を使用していることが前提ですが、登録後に自動ログインする方法をご紹介いたします。
承認の過程を経ないで会員ページ等を参照できてしまいますので、あまりお勧めしません。フローを慎重にご検討の上、実装するようになさってください。
実装方法
概要としては:
プラグインのフックを記述したファイルを作成して、所定の場所にアップする。
それだけです。
theme-my-login-custom.phpというファイルを準備する
まず “theme-my-login-custom.php” というファイルを新規作成してください。(適当な他のphpをコピペして作成するのが簡単ですね。)これは、プラグイン Theme My Login のhook等を記述できるファイルです。
次のコードを記述します
<?php /* Auto Login after registration */ function tml_new_user_registered( $user_id ) { wp_set_auth_cookie( $user_id, false, is_ssl() ); wp_redirect( admin_url( 'profile.php' ) ); // exit; } add_action( 'tml_new_user_registered', 'tml_new_user_registered' ); ?>
上記の例では、登録後に自動的にログインした後のリダイレクト先は、プロフィールページになっています。
必要に応じて、リダイレクト先を指定することができるでしょう。
上記8行目のexitですが、
これがあると、ユーザー登録時のメールが送信されなくなるようです。コメントアウトしました。
(下記リンクのオリジナルコードにはexitはあります。)
theme-my-login-custom.phpをアップロード
作成したファイルを pluginフォルダの直下 にアップロードします。
plugin/theme-my-login ではありませんのでご注意ください。
参照元:
http://wordpress.org/support/topic/auto-login-after-register-and-redirect-to-profile-page
直接メールしてみる
コメントをどうぞ
コメント:2 件
記事を参考にさせていただきました。ありがとうございました。
6.4.2からtml_new_user_registeredはなくなったようですね。
代わりにwordpressのregister new userを使えばいいみたいです。
= 6.4.2 =
* Fix deprecated function notices
* Deprecate “tml_user_password_changed” hook in favor of “after_password_reset”
* Deprecate “tml_new_user_registered” hook in favor of “register_new_user”