Try this:
add_action('_admin_menu', 'remove_editor_submenu', 1);
function remove_editor_submenu() {
remove_action('admin_menu', '_add_themes_utility_last', 101);
}
add_action('admin_init', 'remove_theme_submenus');
function remove_theme_submenus() {
global $submenu;
unset($submenu['themes.php'][5]);
unset($submenu['themes.php'][7]);
unset($submenu['themes.php'][15]);
}
To disable other submenu names, go to ./wp-admin/menu.php and search for the item(s) you want to disable.
EDIT: As far as disabling by username, I would instead add a new capability to a role and use that as your removal condition see here. Otherwise, just use what you already were using, like so:
add_action('_admin_menu', 'remove_editor_submenu', 1);
function remove_editor_submenu() {
global $current_user;
get_currentuserinfo();
if($current_user->user_login == 'username') {
remove_action('admin_menu', '_add_themes_utility_last', 101);
}
}
add_action('admin_init', 'remove_theme_submenus');
function remove_theme_submenus() {
global $submenu, $current_user;
get_currentuserinfo();
if($current_user->user_login == 'username') {
unset($submenu['themes.php'][5]);
unset($submenu['themes.php'][7]);
unset($submenu['themes.php'][15]);
}
}