繁体   English   中英

WooCommerce / Wordpress-自动使用整个电子邮件作为用户名?

[英]WooCommerce / Wordpress - automatically use the entire email as username?

我在这里完成了一个新的WooCommerce构建,我想将其设置为让客户仅使用其电子邮件地址作为登录凭据,希望我可以退休,然后隐藏对Wordpress用户名记录的所有引用。 事实证明这很困难!

我的主题允许客户仅在结帐时进行注册-因此他们在表单末尾打钩“创建帐户”,并被提示输入帐户用户名(需要更改此标题)和密码...或者如果WooCommerce是设置为自动生成用户名,仅要求他们输入密码。 我已禁用设置中的电子邮件生成用户名,因为我不想将完整的电子邮件地址写入数据库的用户名字段中,而不是WooCommerce使用的截短版本

我看到了两种方法,但想在这里提出可行的建议。

我想到的一种方法是在结帐时略过页面上方输入的电子邮件地址,并在用户勾选“创建帐户”时将其复制到“帐户用户名”字段中。 我想这需要某种JavaScript hack才能起作用。 我已经在用户名字段中手动键入了完整的电子邮件地址,它被接受并正确地写入了数据库用户名字段中。

我能想到的第二种方法是在结帐时隐藏“帐户用户名”字段(或将WooCommerce设置为再次生成仍然会隐藏该字段的用户名)...然后将完整的电子邮件地址写入创建帐户时创建数据库。 我不知道可以在哪里执行这样的操作(我想这不只是将一些代码写入functions.php中),但是我认为这种方法比我上面提到的javascript hack更为可靠。

我试图通过在各种登录窗格,错误消息以及注册和密码重置电子邮件中用“电子邮件地址”替换所有对“用户名”的文本引用进行长距离尝试,但这是一种糟糕的方法。 如果正在使用完整的电子邮件地址而不是用户名,WooCommerce实际上将对引用进行任何调整,因此,我仅创建不必要的工作。 不过,使我陷入困境的是使用电子邮件地址。

关于我可能如何处理的任何想法或建议? 我已经阅读了许多其他人提出的问题和答案,但是其中大多数似乎都满足于替换此处或此处的文本引用。 我实际上想将完整的电子邮件地址写入数据库用户名字段中,从而使用户名无效

谢谢

为了回答我自己的问题...当客户勾选“ 创建帐户 ”时,我在结帐表单上使用了JavaScript技巧将电子邮件地址字段的内容复制到帐户“用户名”字段中

这绝不是万无一失的,但是它满足了我在台式机和移动设备上的需求。 未启动的客户仍然可以清除自动填写的用户名字段,并输入除其电子邮件地址之外的其他内容,因此我需要查看是否可以通过某种方式禁用该字段...将其涂灰

我也继续将所有对UsernameEmail地址或username的引用替换为Email address 这比Java 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页面。 我不确定我在哪里找到了代码,但可能来自此答案

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM