wordpress wp_insert_user function


wordpress wp_insert_user function

我正在为WordPress创建一个自定义注册表
我的问题是添加自定义用户元。我相信函数wp_insert_user只允许您在WordPress用户表中添加默认字段。

这是我当前的测试代码:

$username = '12344';
$password = '1111';
$user_data = array(
'ID' => '',
'user_pass' => $password,
'user_login' => $username,
'display_name' => $loginName,
'first_name' => $firstName,
'last_name' => $lastName,
'role' => get_option('default_role') ,
'user_secondry_email' => 'test@tst.com'// Use default role or another role, e.g. 'editor'
);
$user_id = wp_insert_user( $user_data );
wp_hash_password( $password );

我已经找到了add_user_meta函数,但这需要一个ID来添加元数据。显然,用户还没有创建,所以他们没有ID。有什么想法可以绕过这个问题吗?

谢谢,Dan

根据Wordpress文档的理解,ID字段是可选的。

如果存在,则更新用户;如果不存在,则创建用户,并由函数返回新用户的ID

如果我正确理解您的问题,您需要向当前注册用户添加新的user_meta。

以下是我的做法。

// this code insert the user, same on your code above just remove the ID field :)
$new_userid = wp_insert_user( $user_data );
$is_success = add_user_meta( $new_userid, 'position', 'programmer', true );
if( $is_success  ) {
   echo 'Successfully added';
} else {
   echo 'Error on user creation';
}
**NOTE:**
$new_userid = Is the return value from adding our new user and use that ID in adding new user meta

希望这个帮助和其他用户寻找相同的解决方案。

在深入挖掘并检查我的端部后,我发现这个脚本可以正常工作。删除get_option函数和此

$user_data = array(
    'user_login' => $username,
    'user_email' => $email,
    'first_name' => $firstname,
    'last_name' => $lastname,
    'display_name' => $firstname.' '.$lastname,
    'user_pass' => $u_password,
    'role' => 'administrator'
);
$result = wp_insert_user($user_data);

从数组中完全移除ID值,它应该可以工作。(例如删除"ID"=>")

此外,我不认为"user_secondary_email"是新用户数组允许的字段。字段列表如下:http://codex.wordpress.org/Function_Reference/wp_insert_user

(在您的示例中,"user_secondry_email"缺少一个"a")

祝你好运!