
This code snippet contains two parts.
The first part sets a filter on auth_cookie_expiration
which is a WordPress filter hook that allows you to modify the duration of the authentication cookie. This filter hook is triggered when WordPress generates the authentication cookie for a user who logs in to your website. By default, WordPress sets this cookie to expire in two weeks.
The stay_logged_in_for_1_year
function that is hooked onto auth_cookie_expiration
returns a value of 31556926
which is the equivalent of one year in seconds. This means that when a user logs in to your website, their authentication cookie will be set to expire in one year instead of the default two weeks.
The second part of the code adds a hidden field named “rememberme” with a value of “1” to the user login form using the um_after_login_fields
action hook. This field is used by WordPress to remember a user’s login session for an extended period of time, in this case, one year. When a user logs in with the “remember me” option checked, WordPress will keep them logged in for a longer period of time than when this option is not checked.
By combining these two parts, this code snippet creates a “stay logged in for one year” functionality on a WordPress website.
The default cookie duration for WordPress is 14 days.
When extending the cookie duration, there are a few things to keep in mind:
- Security: Extending the cookie duration may increase the risk of a security breach as the longer a user remains logged in, the more vulnerable their account may be to unauthorized access.
- User Experience: Extending the cookie duration may improve the user experience as users will not need to log in as frequently, but it can also result in a negative experience if a user forgets to log out of their account on a shared device or public computer.
- Compliance: If you are subject to regulations such as GDPR, you must ensure that you have a legal basis for processing user data, including the storage of cookies. You should consult with legal counsel to ensure that you are compliant with relevant regulations.
add_filter( 'auth_cookie_expiration', 'keep_me_logged_in_for_1_year' );
function keep_me_logged_in_for_1_year( $expirein ) {
return 31556926 ; // 2 years in seconds
}
function wpsnippet_login_checkbox() {
if (is_account_page()) {
?>
<style>
.woocommerce-form-login__rememberme{ display: none !important;}
</style>
<script>
document.getElementById('rememberme').checked = true;
document.getElementById('user_login').focus();
</script>
<?php
}
}
add_filter('wp_footer', 'wpsnippet_login_checkbox');