Under the appearance admin menu, I have customizer added by the theme, and theme options added by a plugin. I'm using this code to hide both menus ( submenu's of Appearance )for ALL admins apart from a certain USERNAME.
function hide_menu() {
global $current_user;
$current_user = wp_get_current_user();
$user_name = $current_user->user_login;
//check condition for the user means show menu for this user
if(is_admin() && $user_name != 'USERNAME') {
remove_submenu_page( 'themes.php', 'customize' );
remove_submenu_page( 'themes.php', 'core-settings' );
}
}
add_action('admin_head', 'hide-menu');
The code its self works fine, I can hide parent menu's. But I can't seem to hide the two sub menu's that I want to hide.
The two menu's point to URLs :
domainname.com/wp-admin/customize.php
domainname.com/wp-admin/themes.php?page=core-settings
Submenu Debug :
[6] => Array
(
[0] => Customise
[1] => customize
[2] => customize.php?return=%2Fwp-admin%2Findex.php
[3] =>
[4] => hide-if-no-customize
)
[21] => Array
(
[0] => Theme Settings
[1] => manage_options
[2] => core-settings
[3] => Theme Settings
)
I've looked at dubug mode but im not sure what im looking at, could someone please give a solution and an explanation as to why it works.