Как продлить сорок жизни куков авторизации?
При авторизации, когда я ставлю галочку "Запомнить меня" WordPress помнить пой логин и пароль, если не ошибаюсь, две недели. Затем мне снова нужно авторизоваться.
Как продлить этот срок, хочу чтобы WordPress помнил меня и пользователей на сайте пол года. Т.е. нужно чтобы куки авторизации были свежими в течении полу года с момента авторизации.
Другими словами мне нужно, чтобы пользователь зашел и оставался вошедшим очень долгое время...
Изменить строк жизни можно через фильтр:
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>'; }