2017-08-17 42 views
0

我在這裏完成了一個新的WooCommerce構建,我想我會設置它讓客戶只使用他們的電子郵件地址作爲登錄憑據,希望我可以退休,然後隱藏所有對Wordpress用戶名記錄的引用。這證明很困難!WooCommerce/Wordpress - 自動使用整個電子郵件作爲用戶名?

我的主題允許客戶只在結帳時註冊 - 因此他們在表格末尾附近勾選「創建帳戶」,並提示輸入帳戶用戶名(需要更改此標題)和密碼...或者如果WooCommerce設置爲自動生成用戶名,則只會要求他們輸入密碼。我已禁止從設置中的電子郵件生成用戶名,因爲我不想將完整的電子郵件地址寫入數據庫的用戶名字段中,而不是WooCommerce使用的截斷版本

我看到兩種方法,但是想在這裏提出建議這可能工作。

我想到的一種方法是在結賬時,瀏覽在頁面上進一步輸入的電子郵件地址,並在用戶勾選「創建帳戶」時將其複製到帳戶用戶名字段中。我想這將需要某種JavaScript hack工作。我已經手動輸入完整的電子郵件地址到用戶名字段中,並且它被接受並正確寫入到數據庫用戶名字段中。

我能想到的第二種方法是在結帳時隱藏「帳戶用戶名」字段(或者設置WooCommerce以再次生成用戶名,從而隱藏字段),然後將完整的電子郵件地址寫入賬戶創建時數據庫中的用戶名字段。我不知道在哪裏可以執行這樣的事情(我想它不僅僅是寫一些代碼到functions.php中),但我認爲像這樣的方法比我上面提到的JavaScript hack更可靠。

我試過了很長的路要走,通過各種登錄窗格,錯誤消息和註冊和密碼重置電子郵件替換「用戶名」與「電子郵件地址」的所有文本引用,但這是一個不好的方法。無論如何,如果使用完整的電子郵件地址而不是用戶名,WooCommerce實際上會調整引用,所以我只會創建不必要的工作。讓電子郵件地址使用雖然是我卡住的地方。

任何想法或建議人們關於我可能會怎麼做呢?我讀過許多問答和其他人的答案,但大多數人似乎滿足於在這裏或那裏替換文本參考。我想實際編寫完整的電子郵件地址到數據庫中的用戶名外地...還有,藉以取消用戶名

THX

+0

這有幫助嗎? https://premium.wpmudev.org/blog/email-login/ – Rich

+0

@很難說。我禁用了所有我自己的調整並應用了你鏈接的片段,但它似乎只是在很大程度上模仿了我在替換某些文本引用時所做的工作。然而,用戶名字段仍然會在結帳時顯示爲...這是沒有太大用處,它仍然允許創建用戶名,因此它不會用電子郵件地址覆蓋任何東西 – ConM

+0

另外@Rich似乎會產生問題密碼重置並登錄現有帳戶...鏈接網址上的評論似乎表明這可能是其他人的問題 – ConM

回答

0

要回答我的問題...我去使用一個Javascript結賬形式的黑客當客戶打勾時,將電子郵件地址字段的內容複製到帳戶「用戶名」字段中創建帳戶

這絕不是萬無一失的,但它在桌面和移動設備上都能滿足我的需求。一個非發起的客戶仍然可以清除自動填充的用戶名字段,並輸入除了他們的電子郵件地址之外的東西,所以我需要看看我能否以某種方式禁用該字段...灰色它出

我繼續前進也取代所有參考用戶名電子郵件地址或用戶名只需電子郵件地址。這比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

相關問題