wp_generate_password возвращает пароль, но не может войти в систему, используя его

StackOverflow https://stackoverflow.com/questions/5313005

  •  24-10-2019
  •  | 
  •  

Вопрос

Я создаю простую страницу входа / регистрации, включающую модерацию пользователей и загрузку wp для выполнения тяжелой работы.

Я могу добавить нового пользователя в базу данных, и пароль будет создан, хэширован и все такое, но когда я захожу в систему с этой учетной записью, пароль не будет работать.я в тупике...

Однако, когда я захожу в admin под своей учетной записью администратора и меняю пароль для пользователя, это позволяет мне войти в систему просто отлично...

Кто-нибудь видит, чего я не хватает?

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 );
}
Это было полезно?

Решение

Понял.Не могу использовать wp_update_user для нового добавления, я думаю.

нужно использовать:

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top