WP_INSERT_USER始终尝试相同的用户名

时间:2018-08-30 作者:Rick Scolaro

我表单中的页面名是“Register”,意思是slug是“Register”。这是与我的错误理论相关的第一条信息。

当我运行wp\\u insert\\u user时,我第一次获得了成功,但用户名是“register”。因此,后续提交将尝试创建用户“register”,因此它会出错为“存在具有该用户名的用户”错误。

我反复检查了我的数据,以验证我没有提交用户名为“register”的表单,但它总是尝试使用该用户名。

这是我的代码:

$first_name = $data[\'first_name\'];
$last_name = $data[\'last_name\'];
$user_name = $data[\'user_name\'];
$type_of_user = $data[\'type_of_user\'];
$nickname = $first_name . " " . $last_name;
$email = $data[\'email_address\'];
$password = wp_generate_password();

$address1 = $data[\'address_1\'];
$address2 = $data[\'address_2\'];
$city = $data[\'city\'];
$state = $data[\'state\'];
$zipcode = $data[\'zipcode\'];

$user_photo = $data[\'user_photo\'];

$args = array (
        \'user_login\'        =>  $user_name,
    \'user_email\'    =>  $email,
    \'user_pass\'     =>  $password,
    \'user_url\'      =>  $website,
    \'first_name\'    =>  $first_name,
    \'last_name\'     =>  $last_name,
    \'nickname\'      =>  $nickname,
        \'role\'                  =>  $type_of_user
) ;

$user_id = wp_insert_user($args);
post循环中是否有什么东西进入了我的状态,我该如何修复它。我已经试着解决这个问题有一段时间了,但我不知道还能尝试什么。

EDIT 1: Next test case.

$username = "spock";
$password = wp_generate_password();
$email_address = "[email protected]";
if( null == username_exists( $username) ) {

// Generate the password and create the user
$password = wp_generate_password( 12, false );
$user_id = wp_create_user( $username, $password, $email_address );

if ( $user_id && !is_wp_error( $user_id ) ) {

  // Set the nickname
  wp_update_user(
    array(
      \'ID\'          =>    $user_id,
      \'nickname\'    =>    $email_address
    )
  );

  // Set the role
  $user = new WP_User( $user_id );
  $user->set_role( \'contributor\' );

  // Email the user
  wp_mail( $email_address, \'Welcome!\', \'Your Password: \' . $password );
} else {
  wp_mail("[email protected]", "User Reg Error", "Username attempted: " . $username . " . and Error: " . $user_id->get_error_message() . json_encode($user_id));
}

} // end if
此代码在第一次运行时创建以下内容。

New User Created from above code

然后在下次运行时返回错误“抱歉,该用户名已存在!”,因为它试图再次创建用户名为“register”的用户。

EDIT 2: The Workaround (still need an answer)

解决方法是,我只是让它创建用户名“register”,然后用提供的用户快速更新用户名,但没有理由使用此用户名。是否有什么东西正在过滤wp\\u insert\\u用户函数?是否有一个可湿性粉剂挂钩过滤?

EDIT 3: Tried another page/page slug

我用slug“test”创建了一个名为“test”的新页面,但出现了相同的错误,因此与此无关。

0 个回复
结束

相关推荐

从具有序列化值的元键获取GET_USERS

我想做一个get_users() 当元键有两个值时。例如,在db中,它如下所示:a:2:{i:0;s:10:\"31.08.2017\";i:1;s:9:\"username\";} 当我进行查询时:$claimed_users = get_users(\'meta_key=username\'); 并尝试输出它:print_r($claimed_users);它刚刚回来Array().我做错了什么?有没有更好的方法?