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 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-includes/pluggable.php 981

$expiration = time() + apply_filters( 'auth_cookie_expiration', 14 * DAY_IN_SECONDS, $user_id, $remember );

wp-includes/pluggable.php 990

$expiration = time() + apply_filters( 'auth_cookie_expiration', 2 * DAY_IN_SECONDS, $user_id, $remember );

Де використовується хук у WordPress

Використання не знайдено.

Залишити відповідь

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *