Проверка, авторизован ли пользователь — IS_USER_LOGGED_IN()
Функция is_user_logged_in() проверяет, является ли текущий посетитель авторизованным пользователем.
Общая информация
Эта функция принадлежит к группе плагинируемых функций, что означает, что она может быть заменена плагином. Эта функция начинает работать только после загрузки всех плагинов, а до этого момента она не определена. То есть вы не можете вызвать эту функцию и все функции, которые от нее зависят, напрямую в коде плагина. Их нужно вызывать в хуке plugins_loaded, или позже, например, в хуке init.
Как переопределить функцию
Чтобы заменить функцию, вы можете создать функцию с тем же именем в своем плагине. После этого ваша версия функции будет использоваться вместо стандартной.
Как быстро работает функция?
Вызывается функция wp_get_current_user(). Время выполнения:
- 1 раз: 0.000012 сек (очень быстро)
- 50000 раз: 0.01 сек (скорость света)
Возврат значения
Функция возвращает:
true, если пользователь авторизован,false, если пользователь не авторизован.
Пример использования
Чтобы проверить, авторизован ли пользователь, просто используйте:
is_user_logged_in();
Примеры использования функции
Пример 1: Проверка авторизации пользователя
Этот код показывает разный текст в зависимости от того, авторизован пользователь или нет.
if ( is_user_logged_in() ) {
echo 'Вы авторизованы!';
} else {
echo 'Вы НЕ авторизованы!';
}
Пример 2: Не вызывайте функции слишком рано
Чтобы избежать ошибок, не вызывайте is_user_logged_in() слишком рано. Лучший момент для использования — хук init:
add_action( 'init', 'example_function' );
function example_function() {
if ( is_user_logged_in() ) {
// ваш код
}
}
Пример 3: Добавление ссылки на выход из аккаунта в шаблоне
Этот код добавляет ссылки для авторизованных и неавторизованных пользователей.
Выход
Членский кабинет
Пример 4: Персональное сообщение для авторизованных пользователей
Этот код выводит персонализированное сообщение для авторизованных пользователей.
add_action( 'loop_start', 'wpdocs_personal_message_when_logged_in' );
function wpdocs_personal_message_when_logged_in() {
if ( is_user_logged_in() ) {
$current_user = wp_get_current_user();
printf( 'Персональное сообщение для %s!', esc_html( $current_user->user_firstname ) );
} else {
echo 'Общее сообщение для неавторизованных пользователей!';
}
}
Пример 5: Редирект на главную страницу
Этот код перенаправляет авторизованных пользователей, если они пытаются перейти на страницу входа.
function redirect_to() {
global $pagenow;
if ( !is_customize_preview() && is_user_logged_in() && 'index.php' !== $pagenow ) {
wp_redirect( home_url(), 302 );
exit();
}
}
Изменения в версии
- С версии 2.0.0: функция была введена.
Код функции
Вот как выглядит функция is_user_logged_in() в WordPress:
function is_user_logged_in() {
$user = wp_get_current_user();
return $user->exists();
}
Связанные функции
Вот несколько функций, которые связаны с пользователями:
current_user_can(): проверяет, есть ли у текущего пользователя определенные права.get_current_user_id(): возвращает ID текущего пользователя.wp_get_current_user(): возвращает объект текущего пользователя.
Понимание функции is_user_logged_in() поможет вам создавать более персонализированные и функциональные вебсайты, используя WordPress!