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 982
$expiration = time() + apply_filters( 'auth_cookie_expiration', 14 * DAY_IN_SECONDS, $user_id, $remember );
wp-includes/pluggable.php 991
$expiration = time() + apply_filters( 'auth_cookie_expiration', 2 * DAY_IN_SECONDS, $user_id, $remember );
wp-includes/user.php 2791
$default_cookie_life = apply_filters( 'auth_cookie_expiration', ( 2 * DAY_IN_SECONDS ), $user_id, false );