このエントリーをはてなブックマークに追加 Twitterでツイート WordPressで登録会員のメールアドレスを限定する

WordPressの会員登録時では、メールアドレスを入力させ、そのメールアドレス宛に本登録用のURLを含んだメールを送信し、そのURLにアクセスして初めて正式登録になります(最近はこのパターンの会員登録が多いですね)。それで、登録できる会員を限定できないかと調べたところ、比較的簡単にメールアドレスで限定できるようなのでメモしておきます。

具体的には、add_filter関数を使って会員登録で入力されたメールアドレスの合否を判断する方法です。
現在のテーマ内のfunctions.phpは、ログイン時や管理者画面でも読み込まれる仕組みになっているので、functions.phpに次のような記述をします。

add_filter('is_email', 'email_check');

function email_check($email) {
	list( $local, $domain ) = explode( '@', $email, 2 );
	return ($domain == 'gmail.com')? true:  false;
}

これは、メールアドレスのドメインが’gmail.com’か調べ、’gmail.com’のみを許可する例です。

add_filter関数でis_email関数をフックすることで、会員登録時などでis_email関数が利用された際、このemail_check関数が呼ばれることになります(email_checkの名前は任意で、システムやプラグインなどと重複しないこと)。email_check関数のパラメータ$emailには入力されたメールアドレスが格納されており、そのメールアドレスを調べ、許可できるメールアドレスならばtrueを、許可できないメールアドレスならfalseを返します。とても簡単ですよね。

なお、会員登録以外では、ユーザのプロフィール情報更新の際にもis_email関数が利用されているので、許可するメールアドレスの条件を途中から変更する場合は注意が必要です。間違って登録済みのユーザのメールアドレスを許可できないようにしてしまうと、そのユーザがパスワードなどのプロフィールを更新できなくなってしまいます。

投稿日:2010年3月6日
  • ※コメントは、スパム対策などのためIPアドレスにて制限しております。
  • ※誹謗や中傷、スパムなど、不適切な内容は公開いたしません。ご了承ください。