在管理界面中更新用户计数

时间:2018-04-18 作者:Gurvinder Kaur

我正在进行多用户WordPress设置,因此特定类型的用户只能添加/编辑他们编写的用户。代码如下:

function isa_pre_user_query( $user_search ) {
if ( current_user_can( \'contributor\' ) ) { 
    global $wpdb;

    $user_search->query_where = str_replace(
        \'WHERE 1=1\', 
        "WHERE 1=1 AND {$wpdb->users}.ID IN (
          SELECT {$wpdb->usermeta}.user_id FROM $wpdb->usermeta 
          WHERE {$wpdb->usermeta}.meta_key = \'{$wpdb->prefix}capabilities\'
          AND {$wpdb->usermeta}.meta_value LIKE \'%editor%\' )", 
        $user_search->query_where
    );
}
}add_action( \'pre_user_query\', \'isa_pre_user_query\' );  
这很有效,但用户计数显示不正确。

enter image description here
enter image description here

我将所有角色重命名为管理员=>系统用户、订阅者=>销售员、客户=>股票购买者、贡献者=>客户关系官、编辑=>经销商
通过使用上述功能,我成功地仅向客户关系专员列出了经销商,因为cro只能添加经销商。那么,如何更改用户计数并仅显示经销商计数和经销商计数的全部。谁能给我一个建议吗。

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

搜索后,我为其创建了一个钩子,该钩子是:

add_filter("views_users", \'custom_editor_counts\', 10, 1);

function custom_editor_counts($views) {
    $view=$views;
    if ( current_user_can( \'contributor\' ) ) {
        unset($views[\'all\']);
        unset($views[\'administrator\']);
        unset($views[\'subscriber\']);
        unset($views[\'customer\']);
        unset($views[\'contributor\']);
        unset($views[\'shop_manager\']);
        return $views;
    }else{
        $views=$view;
        return $views;
    }
}  
这对我有用。

结束