Скрытие меню админки для конкретного пользователя с ролью администратора
Я пытаюсь скрыть почти все пункты меню админки WordPress для конкретного пользователя с ID, у которого есть роль администратора. Я хочу оставить этому пользователю доступ только к редактированию определенного типа записей "lessons" и другого типа "Events".
Я использую тему LMS от DesignThemes с Themeforest. Непонятно, почему эта тема не дает доступа к WP-админке для других ролей, кроме администратора, таких как редактор или участник. Поэтому я решил дать этому пользователю роль администратора, чтобы он мог заходить в админку. Затем я планирую просто скрыть для него ненужные пункты меню.
Я пробовал плагины вроде User Role Editor Pro и другие бесплатные плагины, но ничего не работает с этой темой. Затем я попробовал код ниже. Но этот код удаляет эти пункты меню для всех администраторов, а мне нужно только для пользователя с ID 279. Любая помощь приветствуется. Вот ссылка на сайт: https://impactmarketingsystems.com/
<?php
function hide_menu(){
global $current_user;
$user_id = get_current_user_id();
// echo "user:".$user_id; // Используйте это для быстрого определения ID пользователя
if($user_id != '279'){
// Для удаления всего меню "Внешний вид" используйте:
remove_menu_page( 'themes.php' );
// Для удаления подменю редактора тем и настроек темы
// из меню "Внешний вид", а также основного подменю "Темы"
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' );
// Удаление пунктов меню "Страницы"
remove_menu_page( 'edit.php?post_type=page' );
remove_submenu_page( 'edit.php?post_type=page', 'post-new.php?post_type=page' );
// Удаление меню "Комментарии"
remove_menu_page( 'edit-comments.php' );
//// Удаление меню LMS
remove_menu_page( 'admin.php?page=parent' );
remove_menu_page( 'tools.php' ); //Инструменты
remove_menu_page( 'options-general.php' ); //Настройки
remove_menu_page( 'plugins.php' ); //Плагины
remove_menu_page( 'edit.php?post_type=product' );

проблема в вашем логическом выражении. сейчас вы пытаетесь удалить панель управления для всех пользователей, у которых id не равен '279', что означает, что только пользователь с id 279 может видеть панель управления. вы можете попробовать такое условие в if:
if(is_admin() && $user_id == '279'){ // ваш код }
