現在、別のスタジオで開発されたウェブサイトで作業を行っています。それはWordpressで動作し、そのメンバー(ログイン、登録、プロフィールなど)を管理するためにUserProというプラグインを使用します。電子メールドメインと潜在的なサブドメインをホワイトリスト登録する方法
オーナーはウェブサイトに一般的にオープンアクセスを望んでいますが、したがって、特定の電子メールドメインを持つユーザーだけがWebサイトに登録できるようにしたかったのです。この機能はドメインと特定のサブドメインで機能しますが、実際にこのドメインのサブドメインには無限の可能性があることがすぐに分かりました。だから彼らは、この電子メールドメインの潜在的なサブドメインの誰もがウェブサイトに登録する資格があることを許可する必要があります。
以下のコードを参考にして、現在の動作を確認してください。私は所有者のプライバシーのためにURLを編集しましたが、残りのコードはまったく同じです。
case 'email_exists':
if (!is_email($input_value)) {
$output['error'] = __('Please enter a valid email.','userpro');
} else if (email_exists($input_value)) {
$output['error'] = __('Email is taken. Is that you? Try to <a href="#" data- template="login">login</a>','userpro');
}
else if($input_value){
$domain = strstr($input_value, '@');
$domains = array('@test.com' , '@test.net' , '@alpha.test.com' , '@beta.test.net', '@*.test.com', '@*.test.net');
if(!in_array($domain, $domains))
$output['error'] = __('Accounts with this email domain are not currently allowed automatic registration. You can request an account via the contact us page. ','userpro');
}
break;
です。あなたが電子メール '@ test.com'または '@ test.net'を持っていればうまく動作します。 '@ alpha.test.com'や '@ beta.test.net'のように、指定されたサブドメインの1つに電子メールをお持ちの場合は、正常に動作し、登録が可能です。
ただし、「@ oscar.test.com」や「@ delta.test.net」などの別のサービスにサインアップしたい場合は、登録しないでください。
私は '@ *。test.com'を実行すると、可能なサブドメインが動作するようになると思っていましたが、明らかにそうではありません。少なくとも、私はそれについて行く方法ではありません。
この問題に関するお手伝いをさせていただきます。
よろしく、 アダム
正規表現と
プレイがドメインtest.comとnewtest.com同じ結果を返します。 – stweb
ええ、私のコードに誤りがありました - 更新 - 必要に応じて動作するはずです – Steve
これは治療になりました。迅速な対応をいただき、ありがとうございました。ずっと簡単です。ありがとう。 –