auth_cookie_expiration
Позволяет изменить время жизни cookie используемых для авторизации пользователей.
Использование
add_filter( 'auth_cookie_expiration', 'wp_kama_auth_cookie_expiration_filter', 10, 3 );
/**
* Function for `auth_cookie_expiration` filter-hook.
*
* @param int $length Duration of the expiration period in seconds.
* @param int $user_id User ID.
* @param bool $remember Whether to remember the user login.
*
* @return int
*/
function wp_kama_auth_cookie_expiration_filter( $length, $user_id, $remember ){
// filter...
return $length;
}
- $length(число)
- Продолжительность жизни cookie в секундах.
- $user_id(число)
- ID пользователя.
- $remember(true/false)
- Показывает была ли выбрана галочка "Запоминть" при авторизации. Обычно, при запоминании время жизни куков увеличивается еще.
По умолчанию: false
Примеры
#1 Продлить сессию в зависимости от роли пользователя
Продлить сессию администратора до 20 дней если установлена галочка "Запомнить меня" и до 5 дней если не установлена.
Для всех остальных пользователей продлить сессии до полугода если галочка "Запомнить меня" не установлена и до года если установлена.
add_filter( 'auth_cookie_expiration', 'cookie_expiration_new', 20, 3 );
function cookie_expiration_new ( $expiration, $user_id, $remember ) {
// Время жизни cookies для администратора
if ( $remember && user_can( $user_id, 'manage_options' ) ) {
// Если установлена галочка
if ( $remember == true ) {
return 20 * DAY_IN_SECONDS;
}
// Если не установлена
return 5 * DAY_IN_SECONDS;
}
// Для всех остальных пользователей
// Если установлена галочка
if ( $remember == true ) {
return 360 * DAY_IN_SECONDS;
}
// Если не установлена
return 180 * DAY_IN_SECONDS;
} #2 Продлить сессии всех пользователей в два раза от текущего значения
add_filter( 'auth_cookie_expiration', 'my_auth_cookie_expiration', 20, 3 );
function my_auth_cookie_expiration( $expiration, $user_id, $remember ) {
return $expiration * 2;
}
Список изменений
| С версии 2.8.0 | Введена. |
Где вызывается хук
auth_cookie_expiration
auth_cookie_expiration
wp-includes/pluggable.php 1078
$expiration = time() + apply_filters( 'auth_cookie_expiration', 14 * DAY_IN_SECONDS, $user_id, $remember );
wp-includes/user.php 2892
$default_cookie_life = apply_filters( 'auth_cookie_expiration', ( 2 * DAY_IN_SECONDS ), $user_id, false );
wp-includes/pluggable.php 1087
$expiration = time() + apply_filters( 'auth_cookie_expiration', 2 * DAY_IN_SECONDS, $user_id, $remember );