WordPress как на ладони
Недорогой хостинг для сайтов на WordPress: wordpress.jino.ru

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

Я использую функцию add_role(), чтобы добавить еще одну роль новому юзеру, кроме той, которая прописана по умолчанию. Несколько ролей юзеру иметь разрешено.

$us=get_user_by('id', $customer_id);
$us->add_role("Amelia Customer");

Но в результате я не получаю роль, а получаю что-то другое, что в WP в профиле пользователя называется "Дополнительные возмоности". Что я делаю не так?

[caps] => Array
		(
			[customer] => 1
			[Amelia Customer] => 1
		)

	[cap_key] => wp7l_capabilities
	[roles] => Array
		(
			[0] => customer
		)

	[allcaps] => Array
		(
			[read] => 1
			[customer] => 1
			[Amelia Customer] => 1
		)
Заметки к вопросу:
Chechako месяц назад

0
Chechako
месяц назад
  • 0
    Kama8480

    Роль нужно для начала зарегистрировать add_role(), а потом назначать её пользователям.

    Chechako месяц назад

    Но я же вижу эту роль в списке ролей. Я специально скриншот приложил, где видно роль "Amelia Customer" в списке. Роль добавлена плагином, может быть в этом дело?

    Kama месяц назад

    Не обратил внимания. При регистрации роли ей задается название роли (ярлык) и Отображаемое название. В списке показано второе, а тебе нужно указать ярлык.

    Chechako месяц назад

    Спасибо, сработало. Как я понимаю, когда я указывал Отображаемое название, add_role() вообще не срабатывала, потому что не находила параметр в списке ярлыков. Тогда еще вопрос: что такое "Дополнительные возмоности" и массивы [caps] и [allcaps]?

    Kama месяц назад
    $caps(массив)
    индивидуальные возможности пользователя.
    $allcaps(массив)
    Абсолютно все возможности пользователя, включая название ролей, индивидуальные возможности и возможности ролей.
    Комментировать
На вопросы могут отвечать только зарегистрированные пользователи. Вход . Регистрация