如何限制WordPress用户访问其他用户

时间:2016-02-08 22:12:32

标签: php wordpress

我试图限制某些用户查看数据库中的某些其他用户。

我们有一家公司允许银行在其网站内注册会员资格。然后,该公司可以将自己的员工添加到站点中以访问电子学习,会议票等。

我想做的是让公司A可以创建/编辑/删除自己的员工,但是他们无法访问或看到公司B的员工。

我找到了以下代码,但我不是php中最好的,而且在wordpress.org博客上发布代码的人说它不完整。

我怎样才能做到我想要的呢?

// Custom User Roles to limit capabilities to view other users within other inst. 
function admin_users_filter( $query ){

    global $pagenow,$wp_query,$user_id;

    if ( is_admin() && $pagenow=='users.php' && !current_user_can('manage_options') ) {
        $editor_user_id = get_current_user_id();
        $affiliate = get_user_meta($editor_user_id, 'affiliate', true);
        $query->search_term = $affiliate;
        global $wpdb;
        if (!is_null($query->search_term)) {
            $query->query_from .= " INNER JOIN {$wpdb->usermeta} ON " . "{$wpdb->users}.ID={$wpdb->usermeta}.user_id AND " . "{$wpdb->usermeta}.meta_key='affiliate' AND "."{$wpdb->usermeta}.meta_value    LIKE '%{$query->search_term}%'";
        }
    }
}
add_filter( 'pre_user_query', 'admin_users_filter' ); 

1 个答案:

答案 0 :(得分:1)

  

我们有一家公司允许银行在其网站内注册   会员资格......

如果您正在处理银行信息(甚至不是财务数据),员工数据,课程注册,门票等,那么从网上提取随机PHP功能并尝试将其集成到网上是绝对愚蠢的一个WordPress主题,并期望结果工作 - 最重要的是 - 是安全的。即使只是作为演示使用。

为自己和你的工作以及你的工作做好准备,并为WordPress的众多商用会员插件之一拨出一点钱。它们相当安全,提供您在进入此项目后所需的功能,并提供支持。谷歌或查看https://wordpress.org/plugins/search.php?q=membership