php 终极成员自定义用户名验证不工作

n9vozmp4  于 2023-10-15  发布在  PHP
关注(0)|答案(1)|浏览(123)

我在WordPress 6.3.1版上使用Ultimate Member 2.6.11版。我的自定义用户名验证代码有问题。
我试图验证用户名字段,以确保它包含字符串“1234”。我使用以下代码:

add_action( 'um_submit_form_errors_hook', function( $args ) {
    if ( isset( $args['mode'] ) && 'register' === $args['mode'] ) {
        if ( !str_contains( $args['user_login'], '1234' ) ) {
            UM()->form()->add_error( 'user_login', __( 'Username must contain the string "1234".', 'ultimate-member' ) );
        }
    }
}, 8, 1 );

但是,这段代码不起作用。我仍然可以注册用户名不包含所需字符串的用户。你能帮帮我吗
谢谢你

eivnm1vs

eivnm1vs1#

我终于找到了解决办法,问题出在钩子的动作上。我用um_submit_form_errors_hook__registration修改了它,所以最后我的代码实际上看起来像这样:

add_action( 'um_submit_form_errors_hook__registration', function( $submitted_data ) {
    
    if ( !str_contains( $submitted_data['user_login'], '1234' ) ) {
        UM()->form()->add_error( 'user_login', __( 'Username must contain the string "1234".', 'ultimate-member' ) );
    }
}, 999, 1 );

相关问题