異なるユーザーが同じEメールアドレスを共有できるようにする必要があります。 (自分のメールアドレスを持っていない可能性があるので、親が自分の子供のアカウントを作成するサイトを運営しているため、親は自分の子供のアカウントごとに自分のアカウントを使用する必要があります。)
私は他の提案を見たことがあります、その中には編集したコア(私はしたくない)が含まれます、しかし何もうまくいかないようです。
ユーザー作成時にemail_existsチェックをバイパスする方法について何かアイデアがありますか?
前もって感謝します。
P.S私は担当者を持っていないので、OPが解決策を見つけたかどうかを尋ねるために他の記事にコメントすることはできません。
残念ながら、これは不可能です。 WordPressがこのチェックを実行する機会は3つあります。
(1)と(2)の両方にフックがあり、(WP_Error()
オブジェクトに追加された)エラーメッセージを削除できるため、効果的にチェックをバイパスできます。
残念ながら、(1)と(2)の両方が(間接的に)wp_insert_user()
を呼び出します。 (wp_insert_user()
、wp_update_user()
およびwp_create_user()
の迷路が少しあります:))
(3)つまずきです。簡単に言えば、それを回避することはできません。
しかし、たとえcouldであったとしても、おそらくしないほうがよいでしょう。一意の電子メールが広く期待されているため、その事実に依存するプラグインを使用している可能性があります。 「パスワードを忘れた」機能を使用する場合、WordPress自体がこの事実に依存しています。
これにより、2つのオプションが得られます。
残念ながらWordPressはユーザー関係管理用に設計されていません...
最初に次のコードを呼び出すと、新しいユーザー名で既存の電子メールアドレスを使用してユーザーを追加することが実際に可能であることがわかりました。
define('WP_IMPORTING',true);
この定数はコーデックスの wp-includes/user.php でチェックされます。
私はWordPressが独自のデータインポートの1つを実行するときに定義されると仮定して、重複したEメールアドレスによって引き起こされるエラーを回避します。
それが役立つことを願っています!
私はこの問題についても調査していて、クライアントの要求に対して最善の解決策を見つけようとしています。
これを実現するには、ダミー/偽のEメール、および予備のEメールフィールドを作成する方法がいくつかあります。これはWP独自の電子メール要件を引き起こすことはありません。新しいフィールドは単に 'email2'というラベルを付けることができます。
'email2'はあなたが望む任意の情報を含むことができます[MySQLフィールド定義によって制限されます]。作成したら、両方のアカウントに同じEメールを追加します(私の場合は複数のアカウントに追加します)。
それからあなたのコードで、両方のアカウントがアクション/トリガー/アップデートなどのためにミラーリングされていることを確認してください...
たとえば、アカウント1に自動化されたメッセージやアカウントの更新などがある場合、あなたのコードは「email2 =現在ログインしているWP_userのemail2であるすべてのアカウントを更新する」を参照できます。
これは回避策ですが、ほとんどのクライアントの要求を満たすはずです。バックエンドで何が起こっているのかわかりません。しかし、彼らがログインすると、彼らは両方のアカウントの '複合'または 'ミラー'ビューを見るはずです。本質的に、それらはWP固有の電子メール、およびユーザー名の要件以外は同じです。
あなたもパスワードでこれを行うことができます。パスワードを「ミラーリング」することはできません。ただし、email2 =現在ログインしているユーザーのemail2 [wp_set_password]であるすべてのアカウントのパスワードを参照および更新/設定できます。
また、これはWP plugin [私のプラグインFYIではありません]があります:
https://wordpress.org/plugins/allow-multiple-accounts/ /
他の誰かが他の解決策を持っている場合は、ブレインストーミングして最善の解決策を見つけましょう。より良い解決策はありますか? #StackExchangeIsCool