# wp_authenticate_email_password()

URL: https://chugunov.pro/api-wordpress/functions/wp_authenticate_email_password/
Проверено на WordPress 6.9, обновлено 06.08.2026.
Источник: независимый русскоязычный справочник chugunov.pro. Не является официальной документацией WordPress.

Тип: функция.
Появился в версии: 4.5.0.

## Сигнатура

```php
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`

```php
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.

## Связанные

Использует: [`wp_password_needs_rehash`](https://chugunov.pro/api-wordpress/functions/wp_password_needs_rehash/), [`is_email`](https://chugunov.pro/api-wordpress/functions/is_email/), [`wp_set_password`](https://chugunov.pro/api-wordpress/functions/wp_set_password/), [`wp_check_password`](https://chugunov.pro/api-wordpress/functions/wp_check_password/), [`get_user_by`](https://chugunov.pro/api-wordpress/functions/get_user_by/), [`wp_lostpassword_url`](https://chugunov.pro/api-wordpress/functions/wp_lostpassword_url/), [`__`](https://chugunov.pro/api-wordpress/functions/__/), [`apply_filters`](https://chugunov.pro/api-wordpress/functions/apply_filters/), [`is_wp_error`](https://chugunov.pro/api-wordpress/functions/is_wp_error/), `WP_Error::__construct`.

Оригинал в официальной документации: https://developer.wordpress.org/reference/functions/wp_authenticate_email_password/
