[Laravel 6.x]Route::get()で設定したURLパラメーターの取得
Laravel6.xでRoute::get('/path/to/{id}')で設定したidの取得方法について。
HOME>WEBプログラム覚書>WordPressで会員サイト開発:Roleを指定してユーザー登録編
前回の「WordPressで会員サイト開発:Role追加編」の続きで、今回はRoleを指定してユーザー登録編
まずは利用者が3つの中から選択してユーザー登録できるようにする。
大まかな流れはこんな感じ。
-------------------- ユーザー登録申請 ↓ アクティベートのためのメールが送られる ↓ URLをクリック ↓ アクティベート完了 ↓ 指定のブログにユーザー追加 --------------------
セキュリティ的な問題はあるのだが、この流れ自体ははWordPressがやってくれるので ポイントポイントで、処理を追加してやればよい。今回は特にやることはない。
-------------------- ユーザー登録申請 ↓・企業|クライアント|派遣労働者の選択 ↓・バリデート ↓ アクティベートのためのメールが送られる ↓ URLをクリック ↓ アクティベート完了 ↓ 指定のブログにユーザー追加 --------------------
ここではユーザー名とメールアドレスに加え、 企業|クライアント|派遣労働者の選択を追加する。
既定のユーザー名、メールアドレス入力エレメントを表示後に実行される 「signup_extra_fields」というアクションがあるので、 そこでフォームのエレメントを出力するとフォームに追加される。
「wpmu_validate_user_signup」フィルターがあるのでフックする。 invaildなデータだった場合、引数に取れる$resultのerrorsにエラーを追加すると エラーメッセージを表示することができる。
ここでは特にやることはなし。メッセージは「wpmu_signup_user_notification()」で処理される。 メールのサブジェクト(wpmu_signup_user_notification_subject)、本文(wpmu_signup_user_notification_email)を変更するためのフィルターも存在している。
本文は
サブジェクトは
という引数をフィルタで受け取れる。
アクティベート用のURLにアクセスがあると wpmu_activate_signup($key)が実行される。
ここでアクティベートが成功すると、'wpmu_activate_user' または 'wpmu_activate_blog'フックが利用できる。 アクティベート時になにかしたい場合、これらをフックしてやればよい。ユーザー登録で利用するのはwpmu_activate_user
クリック後の流れは、wpmu_welcome_user_notification()でパスワードを送信。
次にadd_new_user_to_blog( $user_id, $user_email, $meta )が実行される。 ユーザーをどのブログに追加するか指定があれば、add_user_to_blog( $blog_id, $user_id, $role )が実行されここで 指定ブログに指定のRoleでユーザーが登録される。
add_new_user_to_blog( $user_id, $user_email, $meta )では$meta['add_to_blog'](追加するブログのID)が存在する場合、 add_user_to_blog( $blog_id, $user_id, $role )が実行される。このadd_user_to_blog()で実際に ユーザーを$roleでブログに登録する。ブログにユーザーが登録されると「add_user_to_blog」アクションが利用できる。
処理がwpmu_activate_signup()に戻ってきて、アクティベート完了のwpmu_activate_userアクションが設定されるので フックすればここでも何かできる。
とりあえずこれで登録したroleでログインできるようになる。
ユーザー登録時にユーザー固有の情報を入力するための投稿を作成したいので このあたりを次回利用する。次回は登録時にカスタム投稿タイプで投稿する編の予定。
気のせいかもしれないけどwp-activate.phpはネットワークでプラグインを有効にしないと プラグインファイルを読み込んでくれないっぽい。 wp-signup.phpはサイトで有効にすればOKなのになんでwp-activate.phpはダメなんだ?
今回wp-signup.phpの処理の一部を追ってみたけどすごかった。 これをメンテナンスしてるってすごい。自分なら二度と手を入れること出来ないわw
ってか全体的にタブなのかスペース2つなのか4つなのか、if文の{}あったりなかったりとか WordPress開発者たちのアンチェインっぷりもすごい。
改めて自分には他人のソースを読む力が足りてないんだなと思いました。 これはいい修行になりそうです。
投稿日 | 2011年6月 7日 03:59 |
---|---|
カテゴリ | PHP |
タグ | WordPress |
トラックバック URL | http://www.kantenna.com/cgi-bin/mt504/mt-tb.cgi/1224 |
コメント