一次添加新用户和元数据

时间:2014-02-21 作者:Robbert

我正在进行自定义注册过程,用户首先填写自己的姓名和电子邮件,然后收到激活电子邮件,然后继续注册过程。

该电子邮件包含一个带有引用的激活链接。我需要在我的新用户中保存此引用,以便如果用户单击链接,我可以检索回用户数据。

但由于某些原因,我无法通过插入新用户来添加用户元数据。

因此,首先我要处理表单,从中获取POST值。如果它们是真的,我启动此代码:

$ref = md5( get_bloginfo( \'name\' ) . $reg_email );
$activation_url = get_bloginfo( \'wpurl\' ) . \'/search-company?ref=\' . $ref;

// Create user
$random_password = wp_generate_password( 12, true, false );
$user_id = username_exists( $email );
$userdata = array(
  \'user_login\'  => $email,
  \'user_pass\'   => $random_password,
  \'user_email\'  => $email,
  \'first_name\'  => $first_name,
  \'last_name\'   => $surname,
  \'role\'            => \'author\',
);
wp_insert_user( $userdata );
add_user_meta( $userdata, \'verification_ref\', $ref );
然后我通过wp_mail() 使用激活链接,这很好,但我只需要将验证引用保存在用户的用户元中。

1 个回复
最合适的回答,由SO网友:fischi 整理而成

wp_insert_user 如果创建成功,则返回新用户的ID。您可以添加user_meta 到此ID:

$userid = wp_insert_user( $userdata );
if ( !is_wp_error( $userid ) ) { // check if insert was successful
    add_user_meta( $userid, \'verification_ref\', $ref ); // add the meta
} else {
    /* Error Handling */
}

结束

相关推荐