функция
since 4.5.0
wp_authenticate_email_password()
Проверено на WordPress 6.9, обновлено Источник: WordPress Developer Resources.
Сигнатура
wp_authenticate_email_password( WP_User|WP_Error|null $user, string $email, string $password ): WP_User|WP_Error
Описание
Аутентифицирует пользователя по адресу электронной почты и паролю.
Параметры
$user
WP_User|WP_Error|null
обязательный
Объект WP_User или WP_Error , если предыдущая функция обратного вызова не прошла аутентификацию.
$email
string
обязательный
Адрес электронной почты для аутентификации.
$password
string
обязательный
Пароль для аутентификации.
Возвращаемое значение
WP_User|WP_Error
WP_User WP_Error
Исходный код
wp-includes/user.php:242
function wp_authenticate_email_password(
$user,
$email,
#[\SensitiveParameter]
$password
) {
if ( $user instanceof WP_User ) {
return $user;
}
if ( empty( $email ) || empty( $password ) ) {
if ( is_wp_error( $user ) ) {
return $user;
}
$error = new WP_Error();
if ( empty( $email ) ) {
// Uses 'empty_username' for back-compat with wp_signon().
$error->add( 'empty_username', __( '<strong>Error:</strong> The email field is empty.' ) );
}
if ( empty( $password ) ) {
$error->add( 'empty_password', __( '<strong>Error:</strong> The password field is empty.' ) );
}
return $error;
}
if ( ! is_email( $email ) ) {
return $user;
}
$user = get_user_by( 'email', $email );
if ( ! $user ) {
return new WP_Error(
'invalid_email',
__( 'Unknown email address. Check again or try your username.' )
);
}
/** This filter is documented in wp-includes/user.php */
$user = apply_filters( 'wp_authenticate_user', $user, $password );
if ( is_wp_error( $user ) ) {
return $user;
}
$valid = wp_check_password( $password, $user->user_pass, $user->ID );
if ( ! $valid ) {
return new WP_Error(
'incorrect_password',
sprintf(
/* translators: %s: Email address. */
__( '<strong>Error:</strong> The password you entered for the email address %s is incorrect.' ),
'<strong>' . $email . '</strong>'
) .
' <a href="' . wp_lostpassword_url() . '">' .
__( 'Lost your password?' ) .
'</a>'
);
}
if ( wp_password_needs_rehash( $user->user_pass, $user->ID ) ) {
wp_set_password( $password, $user->ID );
}
return $user;
}
История изменений
| Версия | Описание |
|---|---|
| 4.5.0 | Introduced. |

