Я использую только WordPress с Woocommerce. Есть ли способ получить пользователя имя группы на основании авторизованной информации пользователя?
У меня есть группа пользователей под названием «Group1» и я назначил 2 пользователей — user1, user12
У меня есть вторая группа пользователей с именем «Group2», и я назначил ей двух пользователей — user2 и user23.
Теперь мне нужно проверить, из какой группы пользователей зарегистрирован пользователь (все пользователи имеют одинаковую роль — Клиенты).
Вот пример кода того, что я пытаюсь сделать:
$user_logged = wp_get_current_user();
$user_group_name = // how to get user_logged's group name ?
if ($user_group_name == 'Group1') // do 1st
if ($user_group_name == 'Group2') // do 2nd
Имена групп не будут изменены, поэтому я добавлю их как строки в код. Однако мне нужно получить динамически после входа пользователя в систему имя группы, которой он назначен.
Как мне это сделать ?
Любая помощь приветствуется.
Вы почти сделали это. На основании документации, wp_get_current_user () вернуть WP_User объект, который имеет свойства роли (роли, в которых участвует пользователь).
$roles = wp_get_current_user()->roles;
if (in_array("Group1", $roles)) {
// do 1st
}
if (in_array("Group2", $roles)) {
// do 2nd
}
Надеюсь, поможет
Если вы хотите сказать, что хотите знать, какова роль онлайн-пользователя?
Наконец, вы должны использовать следующий код.
$get = wp_get_current_user();
if ( in_array( 'administrator', $get->roles ) )
// do 1st
if ( in_array( 'editor', $get->roles ) )
// do 2st
if ( in_array( 'group1', $get->roles ) )
// do 3st
if ( in_array( 'groupN', $get->roles ) )
// do N st
Вы можете использовать легко и напрямую current_user_can()
Выделенная функция WordPress с определенной ролью пользователя (или возможностью пользователя), например:
if ( current_user_can( 'Group1' ) ) {
// do 1st
} elseif ( current_user_can( 'Group2' ) ) {
// do 2st
}
WordPress и Woocommerce по умолчанию не предоставляют никаких функций группы пользователей. Какой связанный плагин вы используете для этих групп пользователей.
Вам нужно искать в таблице базы данныхwp_usermeta
чтобы увидеть, назначены ли ‘Group1’ или ‘Group2’ пользователям и дать нам мета-ключ, используемый для него.
использование wp_get_current_user()->roles
чтобы получить группы, в которые входит пользователь.
$roles = wp_get_current_user()->roles;
if (in_array('group1',$roles)) {
echo 'Do something here for group 1';
}