ユーザーがサイトに登録して、電子メールが既に登録されている場合にスローされるエラー[WPを無視させる - "この電子メールは既に登録されています。別のものを選択してください。"
私自身のプラグインを書いてみましたが、うまくいきません。
if($errors['field'.$field->id] == 'This email is already registered, please choose another one.')
unset($errors['field'.$field->id]);
この上の任意の助けは大歓迎です。
PS。
i)登録に同じEメールを許可するのは理想的ではないが、同じ家族が異なるユーザー名で同じ家族Eメールで登録できるようにする別の解決策は見当たらない。
ii)前の質問に対する答えは、単一のサイトではうまくいきませんでした。
add_filter('pre_user_email', 'skip_email_exist');
これが私がシングルサイトソリューションのためにこの質問をしなければならなかった理由です。
コードとデータベースの構造を大幅に変更しなければ、残念ながらこれは不可能です。WordPressはユーザーの電子メールをデータベースの "UNIQUE"行に格納するからです。ユーザーが作成されないため、単にエラーメッセージを設定解除してもこの問題は解決されません。
私はあなたが既にwp-includes/user.php
を見ていたと思います。
最も簡単な方法:1691行目をコメントアウト(EDIT : THIS METHOD IS NOT RECOMMENDED AS IT'S EDITING CORE FILES AND ISN'T FUTURE-PROOF AND SHOULD BE CONSIDERED A LAST RESORT
)
別の方法:Line 1690 users.phpには以下があります。
elseif ( email_exists( $user_email ) ) {
$errors->add( 'email_exists', __( '<strong>ERROR</strong>: This email is already registered, please choose another one.' ) );
}
あなたのコード例では、あなたは$errors['field'.$field->id]
を使っています$errors['field'.$field->id]
が存在する/設定されているかどうか確認しましたか?ここで使用する正しい構文はわかりませんが、$errors['email_exists']
のようにチェックしてから設定解除することができます。
HTH