有没有WordPress功能可以干脆删除注册表中的条目?

时间:2016-08-20 作者:Pierre

我管理用户注册过程(在多站点WP上)。

然而,我的一些用户可以在头版创建新的。如果你看this post 您将了解这三个阶段:

使用wpmu_signup_user() 要在“注册”表中为新(未来)用户添加条目(如果需要,可以使用右钩子阻止WP在此阶段发送通知邮件),请使用SQL查询获取activation_key 在此用户注册表的条目中生成wpmu_activate_signup($key)users表格This works fine, but 创建用户后(在users 表)我需要删除仍在注册表中且无用的条目。有人会知道怎么做的wp_properly 还是应该进行删除查询?

1 个回复
SO网友:Brian Fegter

你说得对,在用户不激活其帐户的两天阈值之外,该行没有太多用途。

我查看了代码库,可以确认没有用于删除注册条目的API函数。删除注册的唯一代码是wpmu_validate_user_signup() 作用它会对照当前的注册进行检查user_loginuser_email. 如果其中任何一个存在,它会检查该用户是否在过去两天内注册。他们有两天的时间激活他们的帐户,或者user_loginuser_email 对其他人可用。

我要做的就是wp_activate_user 用钩子立即将其取下。

add_action( \'wpmu_activate_user\', function( $user_id, $password, $meta ) {
    global $wpdb;
    // Sadly the user email isn\'t passed into the action
    $user = get_user_by( \'id\', $user_id );
    if( $user ){
        $wpdb->delete( $wpdb->signups, array( \'user_email\' => $user->user_email ) );
    }
}, 0, 3);