将用户插入数据库之前的挂钩

时间:2013-04-10 作者:aguidis

我正在使用woocommerce开发airsoft网站。我的客户的一个需求是,如果用户的姓名或邮件被列入黑名单,就阻止用户注册(我还不知道我会使用csv文件、json还是简单数组)。

因此,在将用户插入数据库之前,我必须执行一些验证。但我没能找到好的钩子。

2 个回复
最合适的回答,由SO网友:Andrew Bartel 整理而成

如果检查wp\\u insert\\u user()函数,可以看到在整个过程中调用了无数的过滤器和操作。第一个是用户名上名为pre\\u user\\u login的过滤器。

wp第1304行包括/用户。php:

$user_login = apply_filters(\'pre_user_login\', $user_login);
您可以钩住它并抛出自己的自定义错误消息。

编辑:电子邮件过滤器仅在下面几行。

第二次编辑:添加示例

add_filter( \'pre_user_login\' , \'my_username_block\' );

function my_username_block( $user_login ) {

    $black_listed = array( 0 => \'satan\' , 1 => \'hitler\' );
    if( in_array( strtolower( $user_login ) , $black_listed ) ) {
        wp_die(\'That username is blacklisted\');
    }
    return $user_login;
}

add_filter( \'pre_user_email\' , \'my_email_block\' );

function my_email_block( $user_email ) {

    $black_listed_emails = array( 0 => \'[email protected]\' , \'[email protected]\' );
    if( in_array( strtolower( $user_email ) , $black_listed_emails ) ) {
        wp_die(\'That email address is blacklisted\');
    }
    return $user_email;
}

SO网友:Kayo

也许可以使用用户注册挂钩:http://codex.wordpress.org/Plugin_API/Action_Reference/user_register

这将创建用户,然后调用一个函数,但您可以立即根据黑名单检查新用户信息,并删除该用户或在其详细信息中添加黑名单自定义字段。

结束

相关推荐

Log Author Actions

是否有保存后期创建/删除、页面创建/删除、修改等操作的位置?这是否存储在Apache日志中?如果没有保存,有没有办法(插件?)这样做?