Show limited menu to admin

时间:2011-07-24 作者:VeecoTech

我正在使用最新的wordpress 3.2.1。我想让创建一个新管理员来完成以下操作:1)管理订单,将订单状态更改为(例如,批准..拒绝)。2)只能查看用户,而不能编辑或删除。3) 接受有关新注册用户和新订单的电子邮件通知。

这意味着,当这个新的管理员登录时,他只能查看这3个菜单,而所有其他菜单将不可见。有人能给我建议吗?我已经尝试了很多,比如Adminimize、Admin菜单编辑器、隐藏Admin面板。。但所有don都是基于角色的,而不是基于用户的。

我应该创建一个新的admin 对于上述功能?或者我应该创建一个editor 相反然后更改编辑器的菜单。。我需要你的建议。谢谢

2 个回复
最合适的回答,由SO网友:Mike Eng 整理而成
SO网友:Bainternet

您可以创建一个新角色,并将“管理帖子”设置为该角色,以便他可以批准/拒绝帖子,然后您可以使用此功能根据需要删除菜单功能:

function remove_menus () {
global $menu;
$user = wp_get_current_user();
    if ($user->ID == 2) { // change user ID,

        $restricted = array(__(\'Dashboard\'), __(\'Posts\'), __(\'Media\'), __(\'Links\'), __(\'Pages\'), __(\'Appearance\'), __(\'Tools\'), __(\'Users\'), __(\'Settings\'), __(\'Comments\'), __(\'Plugins\'));
        end ($menu);
        while (prev($menu)){
            $value = explode(\' \',$menu[key($menu)][0]);
            if(in_array($value[0] != NULL?$value[0]:"" , $restricted)){unset($menu[key($menu)]);}
        }
    }
}
add_action(\'admin_menu\', \'remove_menus\');
要让他收到关于新注册用户的电子邮件通知,您可以覆盖wp_new_user_notification() 功能:

if ( !function_exists(\'wp_new_user_notification\') ) {
    function wp_new_user_notification($user_id, $plaintext_pass = \'\') {

            $user = new WP_User($user_id);

            $user_login = stripslashes($user->user_login);
            $user_email = stripslashes($user->user_email);

            // The blogname option is escaped with esc_html on the way into the database in sanitize_option
            // we want to reverse this for the plain text arena of emails.
            $blogname = wp_specialchars_decode(get_option(\'blogname\'), ENT_QUOTES);

            $message  = sprintf(__(\'New user registration on your blog %s:\'), $blogname) . "\\r\\n\\r\\n";
            $message .= sprintf(__(\'Username: %s\'), $user_login) . "\\r\\n\\r\\n";
            $message .= sprintf(__(\'E-mail: %s\'), $user_email) . "\\r\\n";

            //email admin
            @wp_mail(get_option(\'admin_email\'), sprintf(__(\'[%s] New User Registration\'), $blogname), $message);

            //email new editor
            @wp_mail(\'USER_EMAIL_HERE\', sprintf(__(\'[%s] New User Registration\'), $blogname), $message);
            if ( empty($plaintext_pass) )
                    return;

            $message  = sprintf(__(\'Username: %s\'), $user_login) . "\\r\\n";
            $message .= sprintf(__(\'Password: %s\'), $plaintext_pass) . "\\r\\n";
            $message .= wp_login_url() . "\\r\\n";

            wp_mail($user_email, sprintf(__(\'[%s] Your username and password\'), $blogname), $message);
    }
}
将此处的USER\\u EMAIL\\u更改为他的电子邮件

结束

相关推荐