auth_cookie_expirationхук-фильтрWP 2.8.0

Позволяет изменить время жизни 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

Примеры

0

#1 Продлить сессии всех пользователей в два раза от текущего значения

add_filter( 'auth_cookie_expiration', 'my_auth_cookie_expiration', 20, 3 );
function my_auth_cookie_expiration( $expiration, $user_id, $remember ) {
	return $expiration * 2;
}
0

#2 Продлить сессию в зависимости от роли пользователя

Продлить сессию администратора до 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.8.0 Введена.

Где вызывается хук

wp_set_auth_cookie()
auth_cookie_expiration
wp_update_user()
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 2745
$default_cookie_life = apply_filters( 'auth_cookie_expiration', ( 2 * DAY_IN_SECONDS ), $user_id, false );

Где используется хук в WordPress

Использование не найдено.