2017-05-24 69 views
1

我只是给单个站点管理员通过将下面的代码到我的自定义插件与用户角色涉及添加全新的用户的权利:现在如何删除WP多站点管理员的“添加现有用户”选项?

function mc_admin_users_caps($caps, $cap, $user_id, $args){ 

foreach($caps as $key => $capability){ 

    if($capability != 'do_not_allow') 
     continue; 

    switch($cap) { 
     case 'edit_user': 
     case 'edit_users': 
      $caps[$key] = 'edit_users'; 
      break; 
     case 'delete_user': 
     case 'delete_users': 
      $caps[$key] = 'delete_users'; 
      break; 
     case 'create_users': 
      $caps[$key] = $cap; 
      break; 
    } 
} 

return $caps; } 

add_filter('map_meta_cap', 'mc_admin_users_caps', 1, 4); 
remove_all_filters('enable_edit_any_user_configuration'); 
add_filter('enable_edit_any_user_configuration', '__return_true'); 

,在我的管理日志,他们可以添加新用户按照我希望的方式使用用户,但我不想让他们选择添加现有用户。我附上了截图,以帮助您了解我在说什么。任何关于如何保持管理员添加新用户但不存在的功能的想法? The screenshot, I don't want the section called "Add Existing User" to appear anymore.

回答

0

我刚刚遇到同样的问题。对于未来的参考:

要隐藏“添加现有用户”形式网络管理员>用户,您可以将过滤器添加到默认站点的functions.php像这样

add_filter('show_network_site_users_add_existing_form', false); 

然而,这种韩元不要从各个站点删除表单。为此,您只需要使用CSS隐藏表单,因为没有过滤器可用。

以下内容添加到您的默认网站主题的functions.php

add_action('admin_head', 'remove_existing_user_form'); 
function remove_existing_user_form() { 
    if (!is_super_admin()) { 
     echo '<style> 
      #add-existing-user, 
      #add-existing-user + p, 
      #adduser { 
       display: none; 
      } 
     </style>'; 
    } 
} 

这并不理想,但它隐藏了除超级管理员的所有用户的形式,并且是我落得这样做。

相关问题