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 – добавление новой роли"