带循环的所有用户帐户的update_user_meta / add_user_meta

时间:2016-11-27 22:01:00

标签: php wordpress for-loop foreach gravity-forms-plugin

我一直在寻找一种方法来更新我的网站的所有用户帐户元数据,内置WP功能update_user_metaadd_user_meta。我已尝试列出herehere列出的建议解决方案,但都无效。我相信我读到这些函数不允许一次更新多个用户元数据,这可能就是我之前尝试过的方法失败的原因。不幸的是,这正是我需要做的。任何修复建议或替代方法?以下是我之前尝试的代码片段。

尝试1:

$args = array (
    'fields'         => 'all_with_meta',
    'role' => 'Participant',
    //'number' => 50

);

// The User Query
$user_query = new WP_User_Query( $args );

$profile_zipcode = $registers[$x]["18"];
    $profile_state = $registers[$x]["23"];
    $users = $user_query->get_results();

    if (!empty($users)) {

        foreach ($users as $user)
        {
            add_user_meta($user->id, 'profile_zipcode', $profile_zipcode);
            add_user_meta($user->id, 'profile_state', $profile_statue);
        }
    }

尝试2:

$total_registers = 0;
$registers = GFAPI::get_entries(
        $form_id3,
        $register_search_criteria = array('status' => 'active'),
        $register_sorting = null,
        $register_paging = array( 'offset' => 0, 'page_size' => 100 ),
        $total_registers );

ini_set('max_execution_time', 900);
for ($x = 0; $x <= $total_registers; $x++) {
    $profile_zipcode = $registers[$x]["18"];
    $profile_state = $registers[$x]["23"];


    $metas = array(
            'profile_zipcode' => $profile_zipcode,
            'profile_state' => $profile_state
            );

        foreach($metas as $key => $value) {
            add_user_meta( $main_id, $key, $value);
        }
}

提前致谢!

编辑:

我仍然没有找到解决方案。我只想为多个用户运行标准的update_user_meta()函数。

例如

foreach ( $gotten_users as $user ) {   
        $user_id = $user->ID;
        $user_update = update_user_meta($user_id, 'key', $key_value);
    }

我搜索并尝试过许多不同的事情但无济于事。任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:3)

您应该可以使用get_users()

看起来像这样:

$users = get_users( ['fields' => ['ID'] ] );
foreach ( $users as $user ) {
    $user_update = update_user_meta($user->ID, 'key', $key_value);
}