Отображать имя роли пользователя на панели управления моей учетной записи в WooCommerce - PullRequest
1 голос
/ 18 мая 2019

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

Вот код, который я использую:

global $current_user;
wp_get_current_user();
if ( is_user_logged_in()) {
echo 'Username: ' . $current_user->user_login .'';
echo '<br />';
echo 'User display name: ' . $current_user->display_name .'';
}
else { wp_loginout(); }
echo '<br>';

Я хочу, чтобы он отображался так:

Username: имя пользователя Account type: имя роли

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

add_role ( 'business', __( 'Business', 'woocommerce' ), array( 'read' => true, ));

1 Ответ

0 голосов
/ 18 мая 2019

Попробуйте следующее в зависимости от вашей пользовательской роли "business":

global $current_user;

if ( $current_user > 0 ) {

    echo __('Username:') . ' ' . $current_user->user_login . '<br />';

    $account_type = in_array('business', $current_user->roles) ? __('Business') : __('Customer');

    echo __('Account type') . ' ' . $account_type . '<br />';
}

Это должно работать так, как вы хотите.


Чтобы получить имя роли изslug роли пользователя:

global $wp_roles;

$role = 'business';
$role_name = $wp_roles->roles[$role]['name'];

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

global $current_user, $wp_roles;

if ( $current_user > 0 ) {

    $role_name = $wp_roles->roles[reset($current_user->roles)]['name']; 

    echo __('Username:') . ' ' . $current_user->user_login . '<br />';

    echo __('Account type') . ' ' . $role_name . '<br />';
}

ИлиВы можете получить последнюю роль пользователя с помощью:

$role_name = $wp_roles->roles[end($current_user->roles)]['name'];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...