Как продлить сорок жизни куков авторизации?

При авторизации, когда я ставлю галочку "Запомнить меня" WordPress помнить пой логин и пароль, если не ошибаюсь, две недели. Затем мне снова нужно авторизоваться.

Как продлить этот срок, хочу чтобы WordPress помнил меня и пользователей на сайте пол года. Т.е. нужно чтобы куки авторизации были свежими в течении полу года с момента авторизации.

Другими словами мне нужно, чтобы пользователь зашел и оставался вошедшим очень долгое время...

0
Danya
10.3 года назад 50
  • 0
    Kama 9810

    Изменить строк жизни можно через фильтр: auth_cookie_expiration:

    ## Оставляет пользователя авторизованным на пол года
    add_filter('auth_cookie_expiration', 'long_auth_cookie');
    function long_auth_cookie(){
    	return YEAR_IN_SECONDS / 2;
    	// другие константы: HOUR_IN_SECONDS / DAY_IN_SECONDS / WEEK_IN_SECONDS 
    }

    Полностью хук передает такие параметры:

    add_filter('auth_cookie_expiration', 'long_auth_cookie', 10, 3);
    function long_auth_cookie( $expiration, $user_id, $remember ){
    	# устанавливаем свое время только если пользователь поставил чекбокс "Запомнить меня"
    	if( $remember )
    		$expiration = WEEK_IN_SECONDS * 20; // пол года
    
    	# продливаем куки только для администраторов
    	if( $remember && user_can( $user_id, 'manage_options' ) ){
    		$expiration = YEAR_IN_SECONDS / 2;
    	}
    
    	return $expiration;
    }

    Принудительно выставляем галочку "Запомнить меня"

    Этот код можно использовать, чтобы автоматически ставить галочку "Запомнить меня" при авторизации. Включаем галку через javascript:

    add_filter('login_footer', 'always_rememberme');
    function always_rememberme(){
    	echo '
    	<script>
    	document.getElementById("rememberme").checked = true;
    	document.getElementById("user_login").focus();
    	</script>';
    }
    Комментировать
На вопросы могут отвечать только зарегистрированные пользователи. Вход . Регистрация