删除用户名字段注册表单 - Woocommerce

Posted

技术标签:

【中文标题】删除用户名字段注册表单 - Woocommerce【英文标题】:Remove username field registration form - Woocommerce 【发布时间】:2015-12-23 06:00:10 【问题描述】:

如何在 woocommerce 中删除注册表单中的用户名字段?

我试图从 woocommerce/myaccount/login-form.php 中删除一些行

<?php if ('no' === get_option( 'woocommerce_registration_generate_username' ) ) : ?>

<p class="form-row form-row-wide">
<input type="text" class="customer_login_input" name="username" id="reg_username" placeholder="User name" value="<?php if ( ! empty( $_POST['username'] ) ) echo esc_attr( $_POST['username'] ); ?>" />
</p>
<?php endif; ?>

之后该字段没有出现在页面中,但是当我输入电子邮件和密码注册一些新帐户时,我收到以下错误:错误:请输入有效的帐户 ID。

我猜,删除这行在注册表中破坏了一些东西..

任何帮助将不胜感激

【问题讨论】:

您将使用什么作为用户名?没有用户名,用户将无法登录网站。 我希望他们能用邮箱和密码登录,这样不行吗? 对不起,我的意思是,我希望他们只能在用户字段和电子邮件字段的必要性下进行注册。但我认为我们应该做很多思考来做到这一点。 您使用的是什么版本的 WooCommerce?您发布的错误消息似乎指向其他内容,它显示“帐户 ID”,如果用户名不存在,它应该显示“用户名”,因此不确定您的主题是否在做不同的事情。 【参考方案1】:

导航到WooCommerce -&gt; Settings -&gt; Accounts 选项卡,向下滚动到“帐户创建”部分并勾选“从客户电子邮件自动生成用户名”复选框,保存您的设置。

您已经从注册表单中删除了用户名字段,现在应该可以正常工作了。注册后,WooCommerce 将通过将其拆分为 @ 符号从电子邮件字段中获取用户名。

因此,如果有人在 john@example.com 注册,则用户名将是 john。如果找到具有相同用户名的现有用户,用户名将更改为 john1。

编辑(谢谢@helgatheviking)

正如凯西所指出的,您也可以使用以下plugin

P.S:如果您使用的是旧版本的插件,那么从电子邮件自动生成用户名的选项可能不可用。

【讨论】:

this plugin 之类的东西也可能有帮助。 我同意你的看法,肯定会的,我打算推荐它。然而,OP 试图实现的功能在 WooCommerce 核心中是可用的。我个人偏好不依赖外部插件。 太棒了!这正是我所需要的。谢谢你的伙伴:) 总是乐于提供帮助 :) 编码愉快。 酷,我不认为我意识到它在 WC 核心中。在这种情况下,您可能不需要第二个插件来复制相同的功能是正确的。【参考方案2】:

删除用户名字段注册表 - 为那些在注册 woocommerce 时只需要电子邮件的人提供的解决方案

您能否确保 WooCommerce > 设置 > 帐户和隐私中的这些复选框被禁用?enter image description here

【讨论】:

以上是关于删除用户名字段注册表单 - Woocommerce的主要内容,如果未能解决你的问题,请参考以下文章

在 WooCommerce 新用户注册电子邮件中添加自定义字段

Woocommerce 注册中的附加用户角色选择字段

如何在 woocommerce 的注册页面中更改 HTML 表单元素的顺序/位置

如何更改woocommerce自定义用户注册字段中错误显示的顺序

将其他帐单注册字段与 WooCommerce 中的默认 Wordpress 字段同步

WooCommerce“我的帐户”注册表单中的生日字段未保存