The post_password_expires WordPress PHP filter allows you to change the lifespan of the post password cookie.
Usage
add_filter('post_password_expires', 'your_function_name'); function your_function_name($expires) { // your custom code here return $expires; }
Parameters
$expires int
: The expiry time, as passed to setcookie().
More information
See WordPress Developer Resources: post_password_expires
Examples
Change the password cookie expiration to 5 days
This example sets the password cookie expiration to 5 days.
add_filter('post_password_expires', 'change_password_cookie_expiration'); function change_password_cookie_expiration($expires) { $expires = 5 * DAY_IN_SECONDS; return $expires; }
Set the password cookie expiration to 1 hour
This example sets the password cookie expiration to 1 hour.
add_filter('post_password_expires', 'set_one_hour_expiration'); function set_one_hour_expiration($expires) { $expires = HOUR_IN_SECONDS; return $expires; }
Make the password cookie a session cookie
This example turns the password cookie into a session cookie.
add_filter('post_password_expires', 'make_session_cookie'); function make_session_cookie($expires) { $expires = 0; return $expires; }
Set the password cookie expiration to 30 days
This example sets the password cookie expiration to 30 days.
add_filter('post_password_expires', 'set_thirty_days_expiration'); function set_thirty_days_expiration($expires) { $expires = 30 * DAY_IN_SECONDS; return $expires; }
Set the password cookie expiration based on user role
This example sets different password cookie expirations based on the user role.
add_filter('post_password_expires', 'set_expiration_based_on_role'); function set_expiration_based_on_role($expires) { if (current_user_can('administrator')) { $expires = 30 * DAY_IN_SECONDS; } elseif (current_user_can('editor')) { $expires = 15 * DAY_IN_SECONDS; } else { $expires = 7 * DAY_IN_SECONDS; } return $expires; }