WordPress как на ладони
Недорогой хостинг для сайтов на WordPress: wordpress.jino.ru

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

Позволяет изменить время жизни cookie используемых для авторизации пользователей.

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

add_filter( 'auth_cookie_expiration', 'filter_function_name_11', 10, 3 );
function filter_function_name_11( $length, $user_id, $remember ){
	// filter...

	return $length;
}
$length(число)
Продолжительность жизни cookie в секундах.
$user_id(число)
ID пользователя.
$remember(true/false)
Определяет нужно ли запомнить пользователя.
По умолчанию: false

Примеры

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

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

#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;
}

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

wp_set_auth_cookie()
auth_cookie_expiration
wp_update_user()
auth_cookie_expiration
wp-includes/pluggable.php 818
$expiration = time() + apply_filters( 'auth_cookie_expiration', 14 * DAY_IN_SECONDS, $user_id, $remember );
wp-includes/pluggable.php 827
$expiration = time() + apply_filters( 'auth_cookie_expiration', 2 * DAY_IN_SECONDS, $user_id, $remember );
wp-includes/user.php 2011
$default_cookie_life = apply_filters( 'auth_cookie_expiration', ( 2 * DAY_IN_SECONDS ), $ID, false );

Где используется хук (в ядре WP)

Не используется.
petrozavodsky 774alkoweb.ru
Делаю веб руками.
Комментариев нет
    Здравствуйте, !     Войти . Зарегистрироваться