wp_signon()
Авторизует пользователя, по указанному логину/email, паролю и параметру remember.
Функции нужно передать массив, с ключами: user_login, user_password, remember. Если массив не указан то функция пытается получить эти данные из глобальной переменной $_POST.
Время жизни куков авторизации, устанавливается на основе параметра 'remember'.
Функция не устанавливает текущего пользователя. Это значит, если функция вызвана до события init, то проверка is_user_logged_in() вернет false. Если эта проверка нужна заранее, то вам нужно установить текущего юзера вручную через wp_set_current_user().
Заменяет устаревшую функцию: wp_login().
Функцию нужно использовать до вывода какого-либо контента (текста, HTML) на страницу, потому что функция устанавливает куки, которые после вывода контента не могут быть установлены...
Если нужно де-авторизовать пользователя, используйте wp_logout().
Хуки из функции
Возвращает
WP_User|WP_Error
.
- Объект WP_User (данные пользователя) при успешной авторизации.
- Объект WP_Error при ошибке.
Использование
wp_signon( $credentials, $secure_cookie );
- $credentials(массив)
Данные о пользователе, которого нужно авторизовать.
Если не указано, пытается получить из глобальной переменной $_POST
array( 'user_login' => $_POST['log'], 'user_password' => $_POST['pwd'], 'remember' => $_POST['rememberme'], )
По умолчанию: array() (из $_POST)
- $secure_cookie(логический)
Нужно ли использовать защитные куки.
Какое имя куки использовать? Берется из констант:
- При true - SECURE_AUTH_COOKIE
- При false - AUTH_COOKIE.
По умолчанию: false - is_ssl()
Примеры
Пример авторизации на основе данных переданных в $_POST.
$user = wp_signon(); // авторизация не удалась if ( is_wp_error($user) ) { echo $user->get_error_message(); }
#1 Пример авторизации пользователя Leonid:
$creds = array(); $creds['user_login'] = 'Leonid'; $creds['user_password'] = 'password'; $creds['remember'] = true; $user = wp_signon( $creds, false ); if ( is_wp_error($user) ) { echo $user->get_error_message(); }
#2 Пример авторизации, через данные в $_POST
.
Для этого передаем в $_POST, следующие данные и функция проведет авторизацию сама: "log", "pwd" и "rememberme":
// Допустим у нас уже определены переменные: $_POST['log'], $_POST['pwd'], $_POST['rememberme'] // тогда авторизация будет проходить следующим образом: $user = wp_signon(); if ( is_wp_error($user) ) { echo $user->get_error_message(); }
Заметки
- Global. Строка. $auth_secure_cookie
- Global. wpdb. $wpdb WordPress database abstraction object.
Список изменений
С версии 2.5.0 | Введена. |