WordPress как на ладони
Недорогой хостинг для сайтов на WordPress: wordpress.jino.ru Купить персональные IPV4 и IPV6 прокси

authenticate хук-фильтр . WP 2.8.0

Позволяет дополнительно проверить данные авторизации (логин/пароль) пользователя, до того как он будет авторизован (данные пройдут аутентификацию).

Фильтр срабатывает всякий раз, когда юзер входит на сайт (авторизуется на сайте).

Этот фильтр является базовой проверкой логина/пароля в WordPress.

Используйте хук wp_authenticate_user, когда нужно сделать дополнительные проверки авторизации после базовой проверки WordPress, но до того, как пользователь будет авторизован, .

Использование

add_filter( 'authenticate', 'filter_function_name_4601', 10, 3 );
function filter_function_name_4601( $user, $username, $password ){
	// filter...

	return $user;
}
$user(null/WP_User/WP_Error)

Объект WP_User, если пользователь прошел проверку. Объект WP_Error или null.

Функция обработчик может вернуть:

  • WP_User - означает что проверка пройдена и можно перейти к следующим проверкам.
  • null - означает что проверки аутентификации еще не было.
  • WP_Error - означает, что проверка была, но данные не прошил эту проверку.
$username(cтрока)
Логин или email. Email работает с версии WP 4.5.0 до этого можно было указать только логин.
$password(cтрока)
Пароль в НЕ зашифрованном виде.

Примеры

#1 Базовая проверка авторизации в WordPress

Для базовой проверки на хук authenticate прицеплены 3 функции:

Из файла: /wp-includes/default-filters.php.

// Default authentication filters
add_filter( 'authenticate', 'wp_authenticate_username_password',  20, 3 );
add_filter( 'authenticate', 'wp_authenticate_email_password',     20, 3 );
add_filter( 'authenticate', 'wp_authenticate_spam_check',         99    );

Список изменений

С версии 2.8.0 Введена.
С версии 4.5.0 $username now accepts an email address.

Где вызывается хук

wp_authenticate()
authenticate
wp-includes/pluggable.php 539
$user = apply_filters( 'authenticate', null, $username, $password );

Где используется хук (в ядре WP)

wp-includes/default-filters.php 426
add_filter( 'authenticate', 'wp_authenticate_username_password', 20, 3 );
wp-includes/default-filters.php 427
add_filter( 'authenticate', 'wp_authenticate_email_password', 20, 3 );
wp-includes/default-filters.php 428
add_filter( 'authenticate', 'wp_authenticate_spam_check', 99 );
wp-includes/user.php 93
add_filter( 'authenticate', 'wp_authenticate_cookie', 30, 3 );
Комментариев нет
    Здравствуйте, !     Войти . Зарегистрироваться