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

Список изменений

С версии 2.8.0 Введена.

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

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

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

Использование не найдено.
petrozavodsky 785alkoweb.ru
Делаю веб руками.
Редакторы: campusboy 3384, Kama 7528
Комментариев нет
    Здравствуйте, !     Войти . Зарегистрироваться