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[ 'user_login' => $_POST['log'], 'user_password' => $_POST['pwd'], 'remember' => $_POST['rememberme'], ]
По умолчанию:
[](из$_POST)- $secure_cookie(логический)
Нужно ли использовать защитные куки.
Какое имя куки использовать? Берется из констант:
- При true -
SECURE_AUTH_COOKIE - При false -
AUTH_COOKIE.
По умолчанию: false - is_ssl()
- При true -
Примеры
Пример авторизации на основе данных переданных в $_POST.
$user = wp_signon();
// авторизация не удалась
if ( is_wp_error($user) ) {
echo $user->get_error_message();
}
#1 Пример авторизации пользователя Leonid:
$creds = [];
$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 | Введена. |