Я пытаюсь удалить узлы из панели администратора wp (которая отображается во внешнем интерфейсе) для определенной роли c (менеджер магазина). Я успешно удалил узлы, но, к сожалению, он делает это для всех типов ролей.
Я имею в виду это: https://developer.wordpress.org/reference/classes/wp_admin_bar/remove_node/
Мне удалось удалить вся админ-панель, но клиент хочет, чтобы что-то легко входило и выходило из серверной части. Я не хочу, чтобы у них был доступ ко всем узлам.
Я использовал фильтр, чтобы полностью удалить полосу (что им не нужно). Я пробовал использовать «if ( current_user_can( 'shop_admin' ) ){
» с кодом узла выше и продолжаю получать ошибки.
//Hide Admin bar front-end
add_filter( 'show_admin_bar', function( $show ) {
if ( current_user_can( 'shop_admin' ) ) {
return false;
}
return $show;
} );
Итак, у меня получилось вот так:
//Remove WP-Admin front-end Nodes
/**
* Remove WP logo and comments from the Toolbar.
*
* @param WP_Admin_Bar $wp_admin_bar WP_Admin Bar instance.
*/
function wpdocs_remove_nodes( $wp_admin_bar ) {
// Remove items from the menu bar.
add_filter( 'show_admin_bar', function( $show ) {
if ( current_user_can( 'shop_admin' ) ) {
$wp_admin_bar->remove_node( 'wp-logo' );
$wp_admin_bar->remove_node( 'comments' );
$wp_admin_bar->remove_node( 'new-content' );
$wp_admin_bar->remove_node( 'edit' );
$wp_admin_bar->remove_node( 'litespeed-menu' );
$wp_admin_bar->remove_node( 'theme-dashboard' );
$wp_admin_bar->remove_node( 'customize' );
$wp_admin_bar->remove_node( 'new_draft' );
$wp_admin_bar->remove_node( 'updates' );
}
return $show;
}
add_action( 'admin_bar_menu', 'wpdocs_remove_nodes', 999 );
Ошибка: синтаксическая ошибка , неожиданное 'add_action' (T_STRING), ожидая ')'
Спасибо за ваше время!