Как добавить CSS только для определенных пользовательских ролей? - PullRequest
0 голосов
/ 14 января 2020

Во всех сообщениях я пытаюсь скрыть кнопку «Обновить», которая содержится в этом поле:

<div id="postbox-container-1" class="postbox-container">

Я хочу скрыть только это поле и кнопку для определенной роли пользователя, «Заказы» Зритель », который я создал. Вот мой код:

//Hides the update button for the Booking Viewer user role
add_action( 'wp', 'hide_update_booking_viewer' );
function hide_update_booking_viewer()
{
    $user = wp_get_current_user();
    if ( in_array( 'Bookings Viewer', (array) $user->roles ) ) { ?> 
    <style type="text/css" media="screen">
#postbox-container-1 {display:none;}
</style><?
}

}

В настоящее время код, который я поместил в функции. php, похоже, не имеет никакого эффекта. Что я делаю не так?

Ответы [ 2 ]

1 голос
/ 14 января 2020

Попробуйте использовать другой хук:

function hide_update_booking_viewer() {
$user = wp_get_current_user();
if ( in_array( 'Bookings Viewer', (array) $user->roles ) ) {
'<style>
#postbox-container-1 {display:none !important;}
</style>'
} }

add_action( 'wp_head', 'hide_update_booking_viewer' );

Это должно вывести стили в раздел head вашей веб-страницы для пользователя "Просмотр заказов", если вы правильно зарегистрировали роль пользователя.

Но, как предлагается в этом посте, лучше полагаться на возможности пользователя, а не на его имя. Пример:

function hide_update_booking_viewer_1() {
if ( current_user_can( 'read' ) ) {
'<style>
#postbox-container-1 {display:none !important;}
</style>'
} }

add_action( 'wp_head', 'hide_update_booking_viewer_1' );

Список возможностей и типов ролей можно найти здесь .

0 голосов
/ 15 января 2020

Мне удалось выработать ответ для себя - я добавлял действие в неправильный хук. wp_head предназначен для интерфейсного веб-сайта, поэтому нам нужно использовать admin_head. Я также повторил CSS. Наконец, «публикация-действие» относится к кнопке «Обновить», которую я пытался скрыть специально.

//Hides the update button for the Booking Viewer user role
function hide_update_booking_viewer()
{
    $user = wp_get_current_user();
    if ( in_array( 'bookings_viewer', (array) $user->roles ) ) { 
    echo('<style type="text/css" media="screen">
#publishing-action {display:none; !important}
</style>');
}

}
add_action( 'admin_head', 'hide_update_booking_viewer' );
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...