WordPress实现用户注册审核功能

WordPress默认直接注册登录了,不需要任何验证,如果被批量注册就麻烦了,所以添加一个审核功能比较好。

corepress主题支持设置用户注册审核。注册用户默认需要手动审核,审核以后才能登陆,开启审核,可以有效防止用户批量注册。

这儿讲解一下如何通过WordPress过滤器来说实现相关功能。

用户列表界面设置

WordPress用户页面,点击顶部用户类型,通过URL中status参数来过滤,那么添加一个参数为:unapproved 网址参数为:网址/wp-admin/users.php?status=unapproved

添加界面过滤器

add_filter('views_users', 'corepress_views_users');

function corepress_views_users($views)
{
    global $wpdb;
    if (!current_user_can('edit_users')) return $views;

    $current = '';
    if (isset($_REQUEST['status']) && $_REQUEST['status'] == 'unapproved') $current = 'class="current"';

    $meta_key = 'corepress_approve';
    $users = get_users(array(
        'meta_query' => array(
            array(
                'key' => $meta_key,
                'value' => '1',
                'compare' => '='
            )
        )
    ));
    $count = count($users);
    $views['unapproved'] = '<a href="' . admin_url('users.php') . '?status=unapproved" ' . $current . '>' . '待审核' . ' <span class="count">(' . $count . ')</span></a>';
    return $views;
}

这个时候,已经能显示待审核的用户列表了

实现用户查询

通过user_meta,来查询,并返回给前台

add_filter('pre_get_users', 'filter_users');

function corepress_filter_users($query)
{
    global $pagenow;
    if (is_admin() && 'users.php' == $pagenow) {
        global $wpdb;
        if (!isset($_GET['orderby'])) {
            $query->set('orderby', 'registered');
            $query->set('order', 'desc');
        }
        if (isset($_REQUEST['status']) && $_REQUEST['status'] == 'unapproved') {
            $query->set('meta_query', array(
                array(
                    'key' => 'corepress_approve',
                    'value' => '1',
                    'compare' => '='
                )
            ));
        }
    }
    return $query;
}

 实现批量修改用户审核状态

添加批量操作表项

add_filter('bulk_actions-users', 'corepress_add_userlist_approve');
function corepress_add_userlist_approve($actions)
{
    if (current_user_can('edit_users')) {
        $actions['approve'] = '审核用户';
        $actions['disapprove'] = '设置为未审核';
    }
    return $actions;
}

接管批量操作

add_filter('handle_bulk_actions-users', 'corepress_handle_users', 10, 3);
function corepress_handle_users($redirect_to, $doaction, $ids)
{
    if (!$ids || !current_user_can('edit_users')) return $redirect_to;
    if ($doaction == 'approve') {
        foreach ($ids as $id) {
            update_user_meta($id, 'corepress_approve', 0);
        }
    } else if ($doaction == 'disapprove') {
        foreach ($ids as $id) {
            update_user_meta($id, 'corepress_approve', 1);
        }
    }
    return $redirect_to;
}

这个时候,一套体系已经完成了,在注册用户的时候,为用户添加额外字段,就能实现审核的功能了。

 

 

 

上一篇 Vue3开发笔记(1)vue-cli 配置
下一篇 使用批处理开启或者关闭Windows远程的功能
目录
applek

applek管理员

个人说明在个人中心里面设置

本月创作热力图

最新评论
hui
hui
8月19日
能否支持微信第三方登录啊?
Fiee
Fiee
7月21日
我网站基本上都装了,速度确实有所提升,还免费。我不喜欢白嫖,加你QQ没同意,网站也没有打赏通道 想支持一下的。
小超
小超
7月9日
下个版本考虑将下载地址加密(防止采集)
Lvtu
Lvtu
7月4日
qiang厉害
评论于留言建议
chinacnd
chinacnd
6月26日
这个主题是怎么做到加载速度那么快的?