WordPress – добавление новой роли

Admin WordPress

Добавление новой роли и проверка на права конкретного пользователя.

Добавление новой роли для основных прав

add_role('moderator', __('Модератор', 'ploshadka'), [
'read'          => true,
'edit_posts'    => true,
'delete_posts'  => true,
'publish_posts' => true,
]);

Выше указаны на все права, а лишь некоторые из них, для примера.

Добавление новой роли для созданных прав

При создании произвольных типов записей создаются новые права для них. Допустим у нас есть одно из таких созданных типов записей. И мы создали роль модератор.

add_role('moderator', __('Модератор', 'ploshadka'), [
'read_moderator'         => true,
'edit_posts_moderator'   => true,
'delete_posts_moderator' => true,
'publish_posts_moderator' => true,
]);

Как добавить права, когда роль уже имеется

Если у нас уже есть роль, то добавить в неё новый права можно таким образом:

$roles = ['moderator'];
$caps  = [
'read'          => true,
'edit_posts'    => true,
'delete_posts'  => true,
'publish_posts' => true,
];
foreach ($roles as $role) {
$role = get_role($role);
foreach ($caps as $cap) {
$role->add_cap($cap);
}
}

Или таким:

$moderator = get_role( 'moderator' );

$moderator->add_cap( 'read' );
$moderator->add_cap( 'edit_posts' );
$moderator->add_cap( 'delete_posts' );
$moderator->add_cap( 'publish_posts' );

$moderator->add_cap('level_5');
$moderator->add_cap('level_4');
$moderator->add_cap('level_3');
$moderator->add_cap('level_2');
$moderator->add_cap('level_1');
$moderator->add_cap('level_0');

Как проверить роль пользователя

Если надо определить права текущего пользователя:

$data = get_userdata( get_current_user_id() );
if ( is_object( $data) ) {
$current_user_caps = $data->allcaps;
    echo '[cc]' . print_r( $current_user_caps, true ) . '

‘;
}[/cc]

Если надо определить права конкретного пользователя, то меняем get_current_user_id() на нужный ID пользователя.

Будет выведено что-то вроде:

Array
(
    [edit_posts] => 1
    [read] => 1
)

У сайта нет цели самоокупаться, поэтому на сайте нет рекламы. Но если вам пригодилась информация, можете лайкнуть страницу, оставить комментарий или отправить мне подарок на чашечку кофе.

Добавить комментарий

Напишите свой комментарий, если вам есть что добавить/поправить/спросить по теме текущей статьи:
"WordPress – добавление новой роли"