2017-08-17 1 views
0

私はここで新しいWooCommerceビルドを終えています。私は引退してからWordpressのユーザー名レコードへのすべての参照を隠すことができるように、ユーザーがログイン資格情報として自分の電子メールアドレスだけを使用するように設定しました。これは難しいことが証明されています!WooCommerce/Wordpress - 自動的にユーザー名として電子メール全体を使用しますか?

私のテーマは、チェックアウト時のみにサインアップすることができるため、フォームの最後に「アカウントの作成」と表示され、アカウントのユーザー名(この見出しを変更する必要があります)とパスワードまたはWooCommerceがユーザー名を自動生成するように設定されている場合は、パスワードのみを要求されます。私は完全な電子メールアドレスを切り捨てられたバージョンではなく、データベースのユーザ名フィールドに書き込むことを望んでいないので、設定で電子メールからユーザ名を生成することを無効にしました

私は2つのアプローチを見ていますが、それはうまくいくかもしれない。

私が考えていたアプローチの1つは、ページの上に入力した電子メールアドレスをスキミングし、ユーザーが「アカウントの作成」を選択したときにアカウントのユーザー名フィールドにコピーすることでした。私はこれが何らかのjavascriptハックを必要とすると思う。私は手動で完全な電子メールアドレスをユーザー名フィールドに入力し、それが受け入れられ、正しくデータベースのユーザー名フィールドに書き込まれます。

私が考えることのできる2番目のアプローチは、チェックアウト時に「アカウントユーザー名」フィールドを非表示にする(またはフィールドを隠すユーザー名を再度生成するようにWooCommerceを設定する)...そして、完全な電子メールアドレスをアカウントが作成されると、データベースのユーザー名フィールド。私はこのような何かが実行されるかもしれない(私はfunctions.phpにいくつかのコードを書くこと以上のものだと思う)がわからないが、私は上記のjavascriptのハックよりも信頼性が高いと思う。

私は様々なログインペイン、エラーメッセージ、サインアップとパスワードリセットの電子メールで "username"へのすべてのテキスト参照を "電子メールアドレス"に置き換えてみましたが、貧弱なアプローチです。完全な電子メールアドレスがユーザー名の代わりに使用されている場合、WooCommerceは実際には参照を微調整するので、不必要な作業を作成するだけです。私はどこにいらっしゃいましたか?

私がこれについてどのように動くかについてのアイデアや提案がありますか?私は他の人からたくさんの質問と答えを読んだことがありますが、それらのほとんどはここでのテキスト参照を置き換えるという内容です。私はJavascriptがにチェックアウトフォームをハック使用して行ってきました...実際にそこ-で...データベースユーザ名]フィールドに完全な電子メールアドレスを書くために自分の質問に答えるために、ユーザ名

Thxを

+0

これは役に立ちますか? https://premium.wpmudev.org/blog/email-login/ – Rich

+0

@難しいことを教えてください。私は自分自身の調整をすべて無効にして、リンクしたスニペットを適用しましたが、テキスト参照の一部を置き換えたときの作業をほぼ模倣しているようです。しかし、ユーザー名フィールドは依然としてチェックアウト時に表示されます...あまり使用されていませんし、ユーザー名も作成できますので、電子メールアドレスで何も上書きしません。 – ConM

+0

また@Rich、問題を作成するようですパスワードのリセットと既存のアカウントへのログインのために...リンクされたURLのコメントは、他の人にとっても問題であるかもしれないことを示唆しているようです – ConM

答えて

0

を無効化したいです顧客が尋ねるときに電子メールアドレスフィールドの内容をアカウントの「ユーザー名」フィールドにコピーするアカウントを作成する

これは決して簡単ではありませんが、私はデスクトップとモバイルの両方で必要なものです。開始されていない顧客は、自動入力されたユーザー名フィールドをクリアして、自分のメールアドレス以外のものを入力することができるので、フィールドを何らかの形で無効にすることができますか...

私も先に進み、 への参照ユーザー名および電子メールアドレスまたはユーザー名電子メールアドレス。これはJavascriptのハックよりも難しかった!

興味がある人のためのスクリプト:

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script> 
<script type="text/javascript"> 
    $(document).ready(function() { 
     function onchange() { 
      var box1 = $('#billing_email'); 
      var box2 = $('#account_username'); 
      box2.val(box1.val()); 
     } 
     $('#billing_email').on('change', onchange); 
});</script> 

[woocommerce_checkout] 

私は標準Wordpressのエディタを使用して直接チェックアウトページにこれを挿入します。私はコードが見つかった場所が分からないが、それがあったかもしれないからthis answer

関連する問題