if ( ! wp_check_password( $password, $user->user_pass, $user->ID ) ) {
return new WP_Error(
'incorrect_password',
sprintf(
/* translators: %s: User name. */
__( '<strong>Error:</strong> The password you entered for the username %s is incorrect.' ),
'<strong>' . $username . '</strong>'
) .
' <a href="' . wp_lostpassword_url() . '">' .
__( 'Lost your password?' ) .
'</a>'
);
}
if ( ! wp_check_password( $password, $user->user_pass, $user->ID ) ) {
В этом и проблема. Но я не готов тебя учить, тем более в коментах.
Пока не найдешь и не покажешь как это реализовать на практике - это и будет пустая болтовня. Давай, там же 10 минут на всё про всё :)
Где почти, если он позволяет залогиниться под юзером, не зная пароля?
Во-вторых смена проверки, это просто быстрый пример для демонстрации. Можно изменить проверку так, чтобы не аффектить юзеров. И это я уже два раза повторил.
"легальный" способ - ЛЮБОЙ, если ты имеешь доступ к исходникам. Нужно понимать значение слова легальный. Разделять слова легальный и штатный. Разделять слова "решает проблему" и "мне хочется именно вот так, а все остальное мне не нравится".
Это сделать сложнее, чем поправить строчку в коде. Для этого уже нужно лезть в код за кредами от базы, лезть в базу, там разбираться в каком виде все хранится, разбираться в sql, что у топикстартера вызывает проблемы.
То есть ты опять предлагаешь лишний оверинженеринг на пустом месте.
Что самое интересное, ты был крайне удивлен, что авторизацию можно отключить простым ковырянием исходников? То есть реально? Не было никаких подозрение, что все что происходит на сайте, включая авторизацию, это действия запрограммированные в исходниках, и естественно можно найти это кусок и изменить его как угодно. Убрать, отключить, добавить двойную авторизацию, изменить с пароля на что-нибудь еще?
Тут как бы не обязательно "знать такой способ" и надо делать "дополнительные действия по защите админки". Просто доступ к исходникам прямо на сайте нельзя никому давать, это как бы настолько база, что я поэтому и душню.