如何在WooCommerce中设置用户名的最小长度?

时间:2016-04-22 作者:Marco Panichi

我需要为使用WooCommerce的网站中的用户名设置最小长度。

在“标准”WordPress安装中(我的意思是没有WooCommerce),我可以使用如下代码片段:

function my_registration_errors( $errors, $sanitized_user_login, $user_email ) 
{
    if ( strlen( $sanitized_user_login ) < 5 ) {
        $errors->add( \'username_too_short\', __( \'<strong>ERROR</strong>: Username must be at least 5 characters.\' ) );
    }
    return $errors;
}
add_filter( \'registration_errors\', \'my_registration_errors\', 10, 3 );
不幸的是,它不起作用(我只是用一个假注册进行了测试),因为WooCommerce has it\'s own register form and hooks.

我找到了a palliative solution 建议编辑表单登录。向输入字段添加模式属性的php文件<input pattern=".{3,}" required title="3 characters minimum">, 但我不想遵循此过程,我宁愿编辑我的函数。而不是php。

我找到了一个名为"Network Username Restrictions Override" 但“它已经两年多没有更新了”,它指的是一个网络,我认为它不适合我的情况。

我也试着find another plugin 在WordPress插件目录中,但我什么也没找到。

有什么建议吗?

1 个回复
最合适的回答,由SO网友:Marco Panichi 整理而成

好的,我找到了解决办法。

因为,正如我所说,WooCommerce首先有它自己的钩子I\'ve searched for a WooCommerce hook about registration.

我发现了一个与WordPress使用的钩子非常相似的钩子:woocommerce_registration_errors. 显然,它的工作原理是一样的。

然后我简单地用WooCommerce钩子替换了WordPress钩子。这里是您必须插入的最后一个代码段in your functions.php file:

add_filter( \'woocommerce_registration_errors\', \'my_registration_errors\', 10, 3 );
function my_registration_errors( $errors, $sanitized_user_login, $user_email ) 
{
    if ( strlen( $sanitized_user_login ) < 5 ) {
        $errors->add( \'username_too_short\', __( \'<strong>ERROR</strong>: Username must be at least 5 characters.\' ) );
    }
    return $errors;
}

相关推荐

How to change a username?

如何更改用户名?我的用户名以作者身份出现在搜索引擎中,但它是一个基于产品和服务的网站(仅使用页面),供客户使用。如果我无法删除作者页面,我需要更改用户名。如果打开,您似乎可以更改用户名wordpress.com 所以这意味着它可能是可能的,但这是一个个人WP安装。