Получить и использовать имя группы пользователей в Woocommerce - PullRequest
0 голосов
/ 13 ноября 2018

Я использую только Wordpress с Woocommerce.Есть ли способ получить пользователя имя группы на основе информации о зарегистрированном пользователе?

У меня есть группа пользователей с именем 'Group1' и назначенные ей 2 пользователя - user1, user12

У меня есть вторая группа пользователей с именем 'Group2', и я назначил ей 2 пользователя - 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

Имена групп не будут изменены, поэтому я буду обозначать их какстроки в коде.Однако мне нужно получить динамически после входа пользователя в систему имя группы, к которой он назначен.

Как я могу это сделать?

Любая помощь приветствуется.

Ответы [ 4 ]

0 голосов
/ 13 ноября 2018

Вы почти сделали это. Основываясь на документации, 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
}

Надеюсь, это поможет

0 голосов
/ 13 ноября 2018

Если вы имеете в виду, что хотите знать, какова роль онлайн-пользователя?

Наконец, вы должны использовать следующий код.

$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
0 голосов
/ 13 ноября 2018

Вы можете легко и просто использовать current_user_can() WordPress выделенную функцию с определенной ролью пользователя (или возможностью пользователя), например:

if ( current_user_can( 'Group1' ) ) {
    // do 1st
} elseif ( current_user_can( 'Group2' ) ) {
    // do 2st
}

WordPress и Woocommerce по умолчанию не предоставляют никаких функций группы пользователей. Какой связанный плагин вы используете для этих групп пользователей.
Вам нужно выполнить поиск в таблице базы данных wp_usermeta, чтобы увидеть, назначены ли пользователям «Group1» или «Group2», и дать нам мета-ключ, используемый для него.

0 голосов
/ 13 ноября 2018

Используйте wp_get_current_user()->roles для получения групп, членом которых является пользователь.

$roles = wp_get_current_user()->roles;

if (in_array('group1',$roles)) {
    echo 'Do something here for group 1';
}
...