如何删除选项"添加现有用户" WP多站点管理员?

时间:2017-05-24 19:53:46

标签: php html mysql wordpress

我只是通过将以下代码添加到处理用户角色的自定义插件中,让单站点管理员有权添加全新用户:

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.

1 个答案:

答案 0 :(得分: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>';
    }
}

它并不理想,但除了超级管理员之外,它隐藏了所有用户的表单,这也是我最终要做的事情。