我正在进行多用户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\' );
这很有效,但用户计数显示不正确。
我将所有角色重命名为管理员=>系统用户、订阅者=>销售员、客户=>股票购买者、贡献者=>客户关系官、编辑=>经销商
通过使用上述功能,我成功地仅向客户关系专员列出了经销商,因为cro只能添加经销商。那么,如何更改用户计数并仅显示经销商计数和经销商计数的全部。谁能给我一个建议吗。
最合适的回答,由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;
}
}
这对我有用。