Эта проблема кажется достаточно старой, я искал через Интернет для возможных решений, но ничто, кажется, не завершилось успешным способом сделать это.Wordpress wp_create_user пароль не работает
Вот что я получил:
В теме у меня есть настраиваемой формы, которые postos имя пользователя, пароль и адрес электронной почты в сценарий с помощью следующей функции:
function createSubscriberUser($username, $email, $password) {
$user_id = username_exists($username);
if (!$user_id and email_exists($email) == false) {
$user_id = wp_create_user($username, $password, $email);
} else {
$hash = __('User already exists. Password inherited.');
}
}
Это прекрасно работает! пользователь успешно создается как абонент. Однако, когда я пытаюсь войти в систему только что созданного пользователя, используя wp-login.php, я всегда получаю, что учетные данные недействительны.
Таким образом, я использовал следующий фрагмент кода, чтобы посмотреть, что происходит:
$username = $_POST['user'];
$pass = $_POST['pass'];
$user = get_user_by('login', $username);
if ($user && wp_check_password($pass, $user->data->user_pass, $user->ID))
echo " That's it";
else
echo " Nope";
Я всегда получаю «Нет» ... но если я использую созданные пользователем из приборной панели, я получаю сообщение «Это все». Поэтому моя дикая догадка заключается в том, что хэши, генерируемые wp_create_user, всегда отличаются от тех, которые генерируются wp_check_password при передаче пароля обычного текста в качестве ввода от пользователя.
Есть ли способ получить тот же хэш? для входа в систему из wp-login.php и программно?
Большое спасибо за помощь.
В примере [wp_create_user()] (http://codex.wordpress.org/Function_Reference/wp_create_user) они используют wp_generate_password() для создания пароль. Возможно, посмотрите, что возвращает wp_generate_password(), и это может помочь вам отладить дальнейшие действия. – user2058037
wp_generate_password создает случайную строку из n длины, это обычный текст, поэтому wp_create_user все еще хэш, даже если он случайный. – RicardoE
, вероятно, было бы хорошо показать выход переменных? – David