我在这里完成了一个新的WooCommerce构建,我认为我将其设置为让客户只使用他们的电子邮件地址作为登录凭据,希望我可以退休,然后隐藏所有引用Wordpress用户名记录。事实证明这很困难!
我的主题允许客户仅在结账时注册 - 因此他们勾选"创建帐户"在表单的末尾附近,系统会提示您输入帐户用户名(需要更改此标题)和密码...或者如果将WooCommerce设置为自动生成用户名,则只会要求他们输入密码。我已禁用在设置中从电子邮件生成用户名,因为我没有将完整的电子邮件地址写入数据库中的用户名字段,而不是WooCommerce使用的截断版本
我看到了两种方法,但我想在此提出可行的建议。
我想到的一种方法是在结账时,浏览页面上进一步输入的电子邮件地址,并在用户勾选"创建帐户"时将其复制到帐户用户名字段中。我想这需要某种javascript黑客才能工作。我已在用户名字段中手动输入完整的电子邮件地址,并且已正确接受并写入数据库用户名字段。
我能想到的第二种方法是隐藏"帐户用户名"结帐时的字段(或设置WooCommerce再次生成用户名,无论如何隐藏字段)...然后在创建帐户时将完整的电子邮件地址写入数据库中的用户名字段。我不知道在哪里可以执行这样的事情(我想它不仅仅是将一些代码编写到functions.php中)但是我觉得像这样的方法比我提到的javascript黑客更可靠上方。
我已尝试将所有文字引用替换为"用户名"使用"电子邮件地址"跨越各种登录窗格,错误消息以及注册和密码重置电子邮件,但这是一种糟糕的方法。如果使用完整的电子邮件地址而不是用户名,WooCommerce实际上会调整引用,所以我只创建不必要的工作。使用电子邮件地址虽然让我陷入困境。
关于我如何解决这个问题的任何想法或建议?我已经从其他人那里读过许多问题和答案,但大多数人似乎满足于在这里或那里替换文本参考。我想实际上将完整的电子邮件地址写入数据库用户名字段......然后通过使用户名无效
THX
答案 0 :(得分:0)
要回答我自己的问题...当客户勾选创建帐户
它绝不是万无一失的,但它在桌面和移动设备上都能满足我的需求。未启动的客户仍然可以清除自动填充的用户名字段并输入除了他们的电子邮件地址之外的其他内容,因此我需要查看是否可以以某种方式禁用该字段...灰了它
我也继续使用电子邮件地址替换了所有对用户名和电子邮件地址或用户名的引用。这比Javascript hack更难做到了!
任何感兴趣的人的脚本:
<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编辑器将其直接插入Checkout页面。我不确定我在哪里找到了代码,但它可能来自this answer