Mass delete spam accounts

时间:2016-07-05 作者:Christine Cooper

机器人正在缓慢地接管我们的生存,即使是最强大的验证码或守卫也会在某些时候失败。这可能会导致大量需要删除的垃圾邮件帐户。

通过wp admin手动删除这些是很痛苦的。有没有办法快速移除这些?

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

对有多种方法可以做到这一点,首先,我们需要解决wp_delete_user() 作用

你的第一个任务,也是最棘手的一个任务,是确定哪些帐户是垃圾邮件,哪些是真实的。如果你的网站定期获得新用户,这将是一次相当冒险的经历。

在下面的示例中,我们以两个值为目标email 帐户和meta_data.

在这种情况下,我们可以通过解释电子邮件地址来判断它是否是垃圾邮件帐户。因此,让我们在数组中添加一个列表:

$emails = array(
    \'[email protected]\',
    \'[email protected]\',
    \'[email protected]\',
);
然后我们有一个名为points:

$meta_key = \'points\';
在我们的例子中,我们知道如果元键值10, 那么它肯定是一个垃圾邮件用户。因此,我们设置值:

$meta_key = 10;
现在,让我们将其组合成一个函数:

function wpse_delete_users_by_email($emails, $meta_key, $meta_value) {

    if (!is_array($emails)) return;

    foreach ($emails as $email) {

        // get user data via email
        $user = get_user_by( \'email\', $email );
        $user_id = $user->ID;
        $user_email = $user->user_email;

        // get
        $meta_data = get_user_meta($user_id, $meta_key, TRUE);

        // if meta data equals the meta value
        if ($meta_data == $meta_value) {

            // confirm that emails match
            if ($user_email == $email) {

                // must include this, or it will throw a \'call to undefined function\' error
                require_once(ABSPATH.\'wp-admin/includes/user.php\' );

                // delete spam user
                wp_delete_user( $user_id );

                // display results
                echo \'<br>\' . $email;

            }

        }

    }

}
简单的东西,但有时在处理垃圾邮件和机器人时,少一点头痛可能是有价值的。

相关推荐

如何从/wp-json/wp/v2/USERS/Me获取数据

我试图在wordpress中使用JWT auth获取用户数据。我被发送给/wp-json/wp/v2/users/me的邮递员get请求中包含了我从/wp-json/jwt-auth/v1/token获得的令牌。但我有一个错误:{ "code": "rest_not_logged_in", "message": "you are not logged in", "dat