我已经这样做了将近两个小时了,我相信我已经接近了,但找不到推动它工作的方法。我从头开始构建了一个模块,用于从csv文件导入用户,用户创建工作正常,我对此感到满意。
为了方便处理,我希望能够更新用户,并且始终使用相同的csv文件。wp\\u update\\u用户不执行任何操作,没有错误,但不会更新数组中的值。update\\u user\\u meta也不起作用。我想这是我返回$user\\u id的方式,因为该id不包含在数组中。。。
$userdata = array(
\'user_login\' => $username,
\'nickname\' => $username,
\'user_nicename\' => $user_nicename,
\'user_email\' => $user_email,
\'first_name\' => $prenom,
\'last_name\' => $nom,
\'user_registered\' => date( \'Y-m-d H:i:s\' ),
\'display_name\' => $username,
\'show_admin_bar_front\' => false,
\'role\' => \'subscriber\',
\'admin_color\' => "fresh",
\'rich_editing\' => "true",
);
// check if user exists
if (username_exists($username)) {
$user_id = $userdata[0]->ID;
$user_id = wp_update_user( $userdata );
update_user_meta( $user_id, \'region\', $region );
} else {
// create new user
$user_id = wp_insert_user($userdata);
wp_new_user_notification( $user_id, null, \'both\' );
update_user_meta( $user_id, \'region\', $region );
}
编辑:如果有人在寻找类似的问题,那么下面是修复方法:
if (username_exists($username)) {
$the_user = get_user_by(\'login\', $username);
$user_id = $the_user->ID;
if (!is_wp_error( $user_id )){
$push_id = array(\'ID\' => $user_id);
$merge = array_merge($userdata, $push_id);
$user_id = wp_update_user( $merge );
update_user_meta( $user_id, \'region\', $region );
}
else {
$html_update = "Broken";
}
} else {
// create new user
$user_id = wp_insert_user($userdata);
wp_new_user_notification( $user_id, null, \'both\' );
update_user_meta( $user_id, \'region\', $region );
}
谢谢你birgire这帮我找到了解决办法