Php 在数组中使用当前用户id和用户名

Php 在数组中使用当前用户id和用户名,php,wordpress,Php,Wordpress,我希望将当前用户ID和用户名包含在该数组字段的顶部列表或首选项中,或者更好的做法是只在数组或下拉列表中输出当前用户ID和用户名,因此,如果用户登录,其名称将仅是可从数组中选择的选项。如果我能获得当前用户的一个数组或选项,我会很好。查看wp\u get\u current\u user()是否能在函数中获得用户 add_filter( 'gravityflow_assignee_field_users', 'sh_gravityflow_assignee_field_users', 10, 3 )

我希望将当前用户ID和用户名包含在该数组字段的顶部列表或首选项中,或者更好的做法是只在数组或下拉列表中输出当前用户ID和用户名,因此,如果用户登录,其名称将仅是可从数组中选择的选项。如果我能获得当前用户的一个数组或选项,我会很好。

查看
wp\u get\u current\u user()
是否能在函数中获得用户

add_filter( 'gravityflow_assignee_field_users', 'sh_gravityflow_assignee_field_users', 10, 3 );
function sh_gravityflow_assignee_field_users( $users, $form_id, $field ) {
    $users = array(
        array( 'value' => 'user_id|2', 'text' => 'Joe' ),
        array( 'value' => 'user_id|3', 'text' => 'Jane' ),
    );
    return $users;

}

所以它可能看起来像这样:

$current_user = wp_get_current_user();

// $current_user->user_login        
// $current_user->user_email
// $current_user->user_firstname
// $current_user->user_lastname
// $current_user->display_name
// $current_user->ID
更新 我的密码有错误

更新

我不知道你到底需要什么(这不是一件好事,我不应该猜测)。但这可能是你需要的。您的示例可能不正确,因为您现在返回的是一个数字,而不是
$users
数组

对于列表中的每个用户,下面的代码根据用户的显示名称使用特定的数字更改字段
'text'
中的内容

add_filter( 'gravityflow_assignee_field_users', 'sh_gravityflow_assignee_field_users', 10, 3 );
function sh_gravityflow_assignee_field_users( $users, $form_id, $field ) {
    $current_user = wp_get_current_user();
    $users = array( 
        array( 'value' => 'user_id|'.$current_user->ID, 'text' => $current_user->display_name),
        array( 'value' => 'user_id|2', 'text' => 'Joe' ),
        array( 'value' => 'user_id|3', 'text' => 'Jane' ),
    );
    return $users;

}
更新


很抱歉,我将$user视为对象而不是关联数组,因此
$user->text
必须是
$user['text']
。更改了代码。

查看
wp\u get\u current\u user()
是否可以在函数中获取用户

add_filter( 'gravityflow_assignee_field_users', 'sh_gravityflow_assignee_field_users', 10, 3 );
function sh_gravityflow_assignee_field_users( $users, $form_id, $field ) {
    $users = array(
        array( 'value' => 'user_id|2', 'text' => 'Joe' ),
        array( 'value' => 'user_id|3', 'text' => 'Jane' ),
    );
    return $users;

}
   add_filter( 'gravityflow_assignee_field_users', 'sh_gravityflow_assignee_field_users', 10, 3 );
    function sh_gravityflow_assignee_field_users( $users, $form_id, $field ) {
        $current_user = wp_get_current_user();
        $users = array( 
            array( 'value' => 'user_id|'.$current_user->ID, 'text' => $current_user->display_name),
            array( 'value' => 'user_id|2', 'text' => 'Joe' ),
            array( 'value' => 'user_id|3', 'text' => 'Jane' ),
        );

        $users2 = [];
        foreach ($users as $user) {
            $number = -1;
            switch ($user['text']) {
                case "Joe":
                    $number = 400;
                    break;
                case "Jane":
                    $number = 600;
                    break;
                case "Donald":
                    $number = 340;
                    break;
                default:
                    break;
            }
            $user['text'] = $number;
            array_unshift($users2, $user);
        }

        return $users2;    
    }

所以它可能看起来像这样:

$current_user = wp_get_current_user();

// $current_user->user_login        
// $current_user->user_email
// $current_user->user_firstname
// $current_user->user_lastname
// $current_user->display_name
// $current_user->ID
更新 我的密码有错误

更新

我不知道你到底需要什么(这不是一件好事,我不应该猜测)。但这可能是你需要的。您的示例可能不正确,因为您现在返回的是一个数字,而不是
$users
数组

对于列表中的每个用户,下面的代码根据用户的显示名称使用特定的数字更改字段
'text'
中的内容

add_filter( 'gravityflow_assignee_field_users', 'sh_gravityflow_assignee_field_users', 10, 3 );
function sh_gravityflow_assignee_field_users( $users, $form_id, $field ) {
    $current_user = wp_get_current_user();
    $users = array( 
        array( 'value' => 'user_id|'.$current_user->ID, 'text' => $current_user->display_name),
        array( 'value' => 'user_id|2', 'text' => 'Joe' ),
        array( 'value' => 'user_id|3', 'text' => 'Jane' ),
    );
    return $users;

}
更新

很抱歉,我将$user视为对象而不是关联数组,因此
$user->text
必须是
$user['text']
。更改了代码

   add_filter( 'gravityflow_assignee_field_users', 'sh_gravityflow_assignee_field_users', 10, 3 );
    function sh_gravityflow_assignee_field_users( $users, $form_id, $field ) {
        $current_user = wp_get_current_user();
        $users = array( 
            array( 'value' => 'user_id|'.$current_user->ID, 'text' => $current_user->display_name),
            array( 'value' => 'user_id|2', 'text' => 'Joe' ),
            array( 'value' => 'user_id|3', 'text' => 'Jane' ),
        );

        $users2 = [];
        foreach ($users as $user) {
            $number = -1;
            switch ($user['text']) {
                case "Joe":
                    $number = 400;
                    break;
                case "Jane":
                    $number = 600;
                    break;
                case "Donald":
                    $number = 340;
                    break;
                default:
                    break;
            }
            $user['text'] = $number;
            array_unshift($users2, $user);
        }

        return $users2;    
    }
}

}

这是我用上面的代码工作的完美方式,现在一切都很好,谢谢你的时间


这是我处理上述代码的完美方式,现在一切正常,感谢您的时间

完美我需要另一次修改,代码正常,但我想添加一组if语句,以根据用户元值显示不同的名称。假设display name==jerry,则返回'400';如果Mary然后显示600,如果Donald然后显示340,我将在这个步骤中添加示例代码作为答案,但这是错误的,它会抛出错误,请帮助修复它。我认为您正在接近我想要的,但随后函数不起作用,它仍然会显示用户的名称而不是数字。我认为$user2[]部分不起作用我是在一个下拉字段类型上这样做的,但我会在单个文本字段上尝试,但是让我们假设我们正在使用一个简单的逻辑函数,通常是user display=mary,$user返回mary是正常的,但是在这里我们将用300代替mary,而不是返回mary,如果用户是John,我们将用450Is替换John。请看,编辑了这篇文章,这应该行得通。只需将数字作为数组中的
'text'
。当我的答案对你有效时,你介意把它标记为正确吗?我试过了,它不起作用,它只是在字段中添加了-1作为默认值,没有其他变化。。。我认为使用一组if语句会使值根据用户的显示进行更改。我想进行另一次修改,代码可以工作,但我想添加一组if语句,根据用户的元值显示不同的名称。假设display name==jerry,则返回'400';如果Mary然后显示600,如果Donald然后显示340,我将在这个步骤中添加示例代码作为答案,但这是错误的,它会抛出错误,请帮助修复它。我认为您正在接近我想要的,但随后函数不起作用,它仍然会显示用户的名称而不是数字。我认为$user2[]部分不起作用我是在一个下拉字段类型上这样做的,但我会在单个文本字段上尝试,但是让我们假设我们正在使用一个简单的逻辑函数,通常是user display=mary,$user返回mary是正常的,但是在这里我们将用300代替mary,而不是返回mary,如果用户是John,我们将用450Is替换John。请看,编辑了这篇文章,这应该行得通。只需将数字作为数组中的
'text'
。当我的答案对你有效时,你介意把它标记为正确吗?我试过了,它不起作用,它只是在字段中添加了-1作为默认值,没有其他变化。。。我认为使用一组if语句将使值根据用户显示进行更改我的任务是,因为我们能够让代码返回当前用户id和显示名称,所以我还想进一步扩展它,以允许代码根据当前用户显示名称输出数值。假设。$current_user->diplay==jerry返回值为400。是否无法编辑原始问题?如果您只需添加“更新”,请将其加粗并将其添加到下面。在本例中,您不再返回
$users
对象,而只返回一个数字。对吗?你想把电话号码放在哪里?作为属于用户的阵列的一部分<代码>数组('value'=>'user\u id |'。$current\u user->id,'text'=>$current\u user->display\u name,'number'=>400)我的任务是,既然我们能够让代码返回当前用户id和显示名称,我还想进一步扩展它,以允许代码基于当前用户显示名称输出一个数值。假设。$current_user->diplay==jerry返回值为400。是否无法编辑原始问题?如果你可以只添加“更新”,将其加粗并将其添加到下面