wp_generate_password返回密码但无法使用它登录

时间:2011-03-15 14:12:14

标签: wordpress wordpress-login

我正在创建一个简单的登录/注册页面,其中包含用户审核和引导wp以进行繁重的工作。

我可以将新用户添加到数据库中,并创建密码和所有密码,但是当我使用该帐户登录时,密码将无效。我很难过......

然而,当我进入管理员帐户下的管理员并更改用户的密码时,它允许我登录就好......

任何人都能看到我错过的东西?

require_once( ABSPATH . WPINC . '/registration.php' );
$user_pass = wp_generate_password();
$userdata = array(
  'user_pass' => $user_pass,
  'user_login' => esc_attr( $_POST['user_email'] ),
  'user_email' => esc_attr( $_POST['user_email'] ),
);

if( !$userdata['user_login'] )
  $error .= __('An Email Address is required for registration.', 'frontendprofile');
elseif ( username_exists( $userdata['user_login'] ) )
  $error .= __('Sorry, that Email Address is already in use for another account.', 'frontendprofile');
elseif ( !is_email( $userdata['user_email'] ) )
  $error .= __('You must enter a valid Email Address.', 'frontendprofile');
elseif ( email_exists( $userdata['user_email'] ) )
  $error .= __('Sorry, that Email Address is already for another account.', 'frontendprofile');

else{
  $new_user = wp_update_user( $userdata );
}

2 个答案:

答案 0 :(得分:0)

知道了。不能使用wp_update_user进行新的添加。

需要使用:

wp_create_user( $userdata['user_login'], $userdata['user_pass'], $userdata['user_email'] );

答案 1 :(得分:0)

现在您需要使用此
例如:

$password   = wp_generate_password( 8, false );
wp_set_password( $password, $user->ID );