Category : WordPress

Wordpressで会員制サイトを構築してみよう(ユーザー項目の変更 その1)

前回の準備編でとりあえずの会員登録機能は実装できました。今回はコピーしたテンプレートファイルを変更し、オリジナルの項目を追加してみます。

関連記事一覧

利用するユーザー項目について

会員登録時

会員登録時に登録してもらう項目です。

  • メールアドレス(user_email)
  • パスワード
  • パスワード確認

ログイン時

ログイン時に入力する項目です。

  • メールアドレス(user_email)
  • パスワード

プロフィール画面

登録完了、ログイン後に追加/変更できる項目です。

  • 姓(last_name)
  • 名(first_name)
  • 郵便番号(user_zip)
  • 都道府県(user_prefecture)
  • 番地(user_address)
  • プロフィール(user_text)
  • メールアドレス(user_email)
  • パスワード
  • パスワード確認

WordPressの仕様上必要な項目について

  • ユーザー名(user_login)

ユーザー名は、WordPressの仕様上必須の項目です。
ユニークである必要があり、他のユーザーと同じものは利用できません。

昨今のサービスでは、わざわざログイン用のユーザー名を登録させるサービスは少ないと思います。今回は同じユニーク項目であるメールアドレスを、自動でユーザー名に設定されるようにしてみます。

会員登録フォームの変更

会員登録ページのフォーム用テンプレート register-form.php を変更します。

不要な項目の削除

デフォルトですと、画像のような表示になっていると思います。

今回は「ユーザー名」が不要ですので、削除します。
(上記で必須の項目と書きましたが、ユーザーに見せる必要はありませんので消しましょう)

項目がメールアドレス、パスワード、パスワード確認だけになりました。
登録フォームの変更はこれで完了です。

「Confirm Password」というラベルを変更する

このテキストは、テンプレートからは変更できません。
ちょっと強引ですがJavaScriptで変更し「パスワード(確認)」というテキストに変更します。

会員登録処理を変更

2015年11月9日追記

以下の会員登録処理変更について、「Theme My Login」新しいバージョンでは必要ない可能性があります。WordPressで会員制サイトを構築してみよう(Theme My Loginの新機能)と合わせてお読み下さい。

次に、フックを利用して会員登録の処理を追加します。
上記にも書きましたが、メールアドレスをユーザー名にも設定する必要があります。

会員登録フォームでPOSTした内容を取得し、$_POST[‘user_login’] に $_POST[‘user_email’] を代入しています。
これで ユーザー名(user_login) の項目にも、メールアドレスと同じものが設定されます。

今回はユーザー名にメールアドレスを設定しましたが、メールアドレスの@よりも前だけにしたり、ランダム文字列を追加したり・・・等、ここでいろいろ処理を追加することができます。

変更を保存して会員登録を実行すると、下記のような画面になると思います。
認証用のメールが、指定したメールアドレスに届いていれば登録成功です。

ログインフォームの変更

WordPressの仕様で、ログインは「ユーザー名」と「パスワード」で行うことになっています。
今回は、「ユーザー名」ではなく「メールアドレス」でログインしたいので、その設定を行います。

Theme My Loginの設定で、下記画像の部分にチェックを入れると「ユーザー名」のところに「メールアドレス」を入れても、ログインができるようになります。(ここは前回の準備編で既にチェックを入れています)

これでメールアドレスとパスワードでログインできるようになりました。
あとは、ラベルの「ユーザー名」を「メールアドレス」に変更すれば完了です。

これだけで、メールアドレスとパスワードでログインすることができるようになります。
次回、ユーザーのプロフィールページの変更を行います。

参考

下記サイト様を参考にさせていただきました。

関連記事一覧