web-dev-qa-db-ja.com

IDでユーザーロールを取得するWordPress

どういうわけか、IDだけで誰かの役割をチェックする必要があります。 current_user_can()チェックを見つけました。しかし、これはログインしているユーザーに対してのみ機能します。そのユーザーが現在のユーザーでない場合、どのようにこれをチェックしますか?電話注文システムを使用していますが、管理者/特定のアカウントを使用して他の人に注文します。

26
Tristan .L

ユーザーロールを直接取得することはできません。まず、user_meta_dataを取得する必要があり、ユーザーロールを含むオブジェクトが返されます。

コード:

$user_meta=get_userdata($user_id);

$user_roles=$user_meta->roles; //array of roles the user is part of.
45
Meathanjay

続行する前に知っておく必要がある情報:

  • IDでユーザーロールを直接取得することはできません。
  • canユーザーが割り当てられているすべてのロールを取得します。

すべてのロールを取得して、興味のあるロールが現在あるかどうかを確認しましょう。

<?php

// Get the user object.
$user = get_userdata( $user_id );

// Get all the user roles as an array.
$user_roles = $user->roles;

// Check if the role you're interested in, is present in the array.
if ( in_array( 'subscriber', $user_roles, true ) ) {
    // Do something.
    echo 'YES, User is a subscriber';
}
8
Ahmad Awais
$user_meta = get_userdata($user_id);
$user_roles = $user_meta->roles;

if ( in_array( 'administrator', $user_roles, true ) ) {
    //echo User is a administrator';
}
1
Wessam Mohsen