Ocultar menú de administración para un ID de usuario específico con rol de administrador
Estoy intentando ocultar casi todos los menús del panel de administración de WordPress para un ID de usuario específico que tiene rol de administrador. Quiero darle a ese usuario solo la opción de editar un tipo de contenido personalizado llamado "lessons" y otro tipo llamado "Events".
Estoy usando un tema LMS de WordPress de themeforest por designthemes. No estoy seguro por qué este tema no da acceso al WP-admin para otros roles excepto administrador, como Editor, Colaborador, etc. Así que decidí darle a ese usuario específico el rol de administrador para que pueda acceder al panel de WordPress. Luego mi plan es simplemente ocultar otros menús de administración para este usuario.
He usado el plugin llamado User role editor pro y otros plugins gratuitos, pero nada parece funcionar con esto. Entonces probé con el siguiente código. Pero este código está eliminando estos menús de administración del panel de otros administradores también, donde quiero que estos menús solo se eliminen para este ID de usuario cuyo ID es 279 aquí. Cualquier ayuda es apreciada. Este es el enlace del sitio https://impactmarketingsystems.com/
<?php
function hide_menu(){
global $current_user;
$user_id = get_current_user_id();
// echo "usuario:".$user_id; // Usa esto para encontrar tu ID de usuario rápidamente
if($user_id != '279'){
// Para eliminar todo el menú de administración de Apariencia usarías:
remove_menu_page( 'themes.php' );
// Para eliminar el editor de temas y submenús de opciones de temas
// del menú de administración de Apariencia, así como el submenú principal 'Temas'
// usarías
remove_menu_page( 'index.php' );
remove_submenu_page( 'index.php', 'update-core.php' );
remove_submenu_page( 'themes.php', 'themes.php' );
remove_submenu_page( 'themes.php', 'theme-editor.php' );
remove_submenu_page( 'themes.php', 'theme_options' );
remove_menu_page( 'users.php' );
remove_submenu_page( 'users.php', 'user-new.php' );
remove_submenu_page( 'users.php', 'profile.php' );
remove_menu_page( 'upload.php' );
remove_submenu_page( 'upload.php', 'media-new.php' );
remove_submenu_page( 'upload.php', 'upload.php?page=wp-smush-bulk' );
remove_menu_page( 'admin.php?page=Wordfence' );
remove_submenu_page( 'admin.php?page=Wordfence', 'media-new.php' );
remove_menu_page( 'edit.php?post_type=dt_teachers' );
remove_submenu_page( 'edit.php?post_type=dt_teachers', 'post-new.php?post_type=dt_teachers' );
remove_menu_page( 'edit.php?post_type=dt_portfolios' );
remove_submenu_page( 'edit.php?post_type=dt_portfolios', 'post-new.php?post_type=dt_portfolios' );
remove_submenu_page( 'edit-tags.php?taxonomy=portfolio_entries', 'edit-tags.php?taxonomy=portfolio_entries&post_type=dt_portfolios' );
remove_menu_page( 'edit.php' );
remove_submenu_page( 'edit.php', 'post-new.php' );
remove_submenu_page( 'edit.php', 'edit-tags.php?taxonomy=category' );
remove_submenu_page( 'edit.php', 'edit-tags.php?taxonomy=post_tag' );
// Eliminar elementos del menú de Páginas
remove_menu_page( 'edit.php?post_type=page' );
remove_submenu_page( 'edit.php?post_type=page', 'post-new.php?post_type=page' );
// Eliminar menú de Comentarios
remove_menu_page( 'edit-comments.php' );
//// Eliminar menú LMS
remove_menu_page( 'admin.php?page=parent' );
remove_menu_page( 'tools.php' ); //Herramientas
remove_menu_page( 'options-general.php' ); //Ajustes
remove_menu_page( 'plugins.php' ); //Plugins
remove_menu_page( 'edit.php?post_type=product' );

El problema está con tu declaración lógica. Ahora estás intentando eliminar el panel de control del personal donde el ID de usuario no es '279', lo que significa que solo el usuario con ID 279 puede ver el panel. Puedes probar esto en la declaración if:
if(is_admin() && $user_id == '279'){ //tu código }
