Skip to content
WordPress.org

Veneto

  • Themes
  • Plugins
  • About
  • Ła Tradusion Veneta
  • Remembers
  • Blocks
  • Education
  • Get WordPress
Get WordPress
WordPress.org

Plugin Directory

Expire User Passwords

  • Submit a plugin
  • My favorites
  • Log in
  • Submit a plugin
  • My favorites
  • Log in

Expire User Passwords

By Matt Miller
Download
  • Details
  • Reviews
  • Development
Support

Description

Note: This is a forked version of the now unsupported Expire Passwords plugin. The notes below are copied over from the original plugin and will be updated as relevant updates become available. Please help by contributing to the GitHub repository Expire Passwords on GitHub

Did you find this plugin helpful? Please consider leaving a 5-star review.

Harden the security of your site by preventing unauthorized access to stale user accounts.

This plugin is also ideal for sites needing to meet certain industry security compliances – such as government, banking or healthcare.

In the plugin settings you can set the maximum number of days users are allowed to use the same password (90 days by default), as well as which user roles will be required to reset their passwords regularly (non-Administrators by default).

Languages supported:

  • English
  • Chinese Simplified (简体中文)
  • Czech (Čeština)
  • Dutch (Nederlands)
  • French (Français)
  • German (Deutsch)
  • Italian (Italiano)
  • Japanese (日本語)
  • Polish (Polski)
  • Portuguese – Brazil (Português do Brasil)
  • Russian (Русский)
  • Spanish (Español)
  • Swedish (Svenska)
  • Turkish (Türkçe)

Development of this plugin is done on GitHub. Pull requests welcome. Please see issues reported there before going to the plugin forum.

Screenshots

  • Configure which user roles should be required to regularly reset their passwords and how often.
  • Users with expired passwords are redirected to the password reset screen upon sign in.
  • Users are not permitted to use the same password two times in a row during reset.

FAQ

What happens to existing users when I first install the plugin?

Existing users are not immediately expired. The plugin tracks each user’s last password reset date. Users who have never reset their password have no recorded date, so they are treated as not expired. The expiration clock only starts once a user registers or resets their password after the plugin is active.

How can I hide the settings page from certain roles?

The plugin provides a eup_submenu_access filter to control which capability is required to see the settings page. By default it requires manage_options. To restrict it to only administrators, add this to your theme’s functions.php:

add_filter( 'eup_submenu_access', function() { return 'manage_network'; } );

Or use any capability that only your desired role has. This is useful when custom roles have manage_options for other purposes but should not access the Expire User Passwords settings.

Reviews

Stopped working on new WordPress version

odvir November 21, 2023
Excellent plugin. Unfortunately, after the new WordPress update, it blocks managed users from logging in.

Everything’s good, need just an update

nasseryo August 12, 2023
Everything in the title

Great plugin.

Henry Douglas March 27, 2022
Excellent plugin, solved my problem.

Does what it says 🙂

nikmittal May 26, 2020
Does what it says 🙂

Must have plug-in

marco1958 March 12, 2020 1 reply
Using it on 15 WP 5.3.2 sites at the moment. It’s a must have these days. Using the same password too long will lead to leaks at some time. Would like to have an export/import option to easily share settings. Also a way to configure via the wp cli would be nice.
Read all 5 reviews

Contributors & Developers

“Expire User Passwords” is open source software. The following people have contributed to this plugin.

Contributors
  • Matt Miller
  • Frankie Jarrett
  • Miller Media

“Expire User Passwords” has been translated into 6 locales. Thank you to the translators for their contributions.

Translate “Expire User Passwords” into your language.

Interested in development?

Browse the code, check out the SVN repository, or subscribe to the development log by RSS.

Changelog

1.3.9

  • Added translations for Russian, Polish, Dutch, Turkish, and Swedish
  • Updated localization section in readme

1.3.8

  • Added Chinese Simplified (zh_CN) translation

1.3.7

  • Added Japanese (ja) translation

1.3.6

  • Tested up to WordPress 6.9.1

1.3.5

  • Added dismissible review prompt notice after 14 days of usage
  • Removed non-dismissible footer review prompt from settings page

1.3.4

  • Added translations for Spanish, French, German, Portuguese (Brazilian), and Italian

1.3.3

  • Added FAQ section documenting first-install behavior and settings page access control

1.3.2

  • Compatibility updates for WordPress 6.9 and PHP 8.1+
  • Replaced deprecated FILTER_SANITIZE_STRING usage

1.3.1 – September 30, 2022

  • Support for PHP 7.2 and older

1.3 – September 27, 2022

  • Added ability for users to reset their expired password from the login screen
  • Added Dutch translation

Props @janwoostendorp

1.2 – May 4, 2022

  • Added ‘eup_submenu_access’ filter for greater control to access of plugin settings

1.1.0 – February 15, 2020

  • Fix: Updated namespace issues that caused critical errors when installing
  • Tweak: Tested support for WordPress 5.3.2

1.0.0 – November 7, 2019

  • New: Indicate support for WordPress 5.3

Props @Miller-Media

0.6.0 – January 5, 2017

  • Fix: Expiration not updating when resetting a password via email confirmation link.

Props @fjarrett

0.5.0 – December 23, 2016

  • Tweak: Indicate support for WordPress 4.7 and require at least 4.0.
  • Fix: Selected user roles in plugin settings not always being honored.
  • Fix: Destroy all sessions after login with an expired password.

Props @fjarrett

0.4.0 – April 13, 2016

  • New: Indicate support for WordPress 4.5.
  • Tweak: Bring back PHP 5.2 compatibility.

Props @fjarrett

0.3.0 – July 9, 2015

  • New: Language support for Czech
  • Tweak: Optimizations requiring PHP 5.3 or higher
  • Fix: User role array error before options exist

Props @fjarrett, @dero

0.2.2 – July 2, 2015

  • New: Language support for Español

Props @fjarrett

0.2.1 – July 2, 2015

  • Fix: Fatal undefined function error occuring in some cases (#3)

Props @fjarrett

0.2.0 – April 29, 2015

  • New: Disallow using the same password as before on reset (#1)
  • Tweak: Use default if limit is set to greater than 365 days

Props @fjarrett

0.1.0 – April 28, 2015

  • Initial release

Props @fjarrett

Meta

  • Version 1.3.9
  • Last updated 2 days ago
  • Active installations 3.000+
  • WordPress version 4.0 or higher
  • Tested up to 6.9.1
  • PHP version 8.1 or higher
  • Languages

    Chinese (Taiwan), English (US), German, Polish, Spanish (Mexico), Spanish (Spain), and Spanish (Venezuela).

    Translate into your language

  • Tags
    loginmembershippasswordssecurityusers
  • Advanced View

Ratings

4.2 out of 5 stars.
  • 3 5-star reviews 5 stars 3
  • 1 4-star review 4 stars 1
  • 0 3-star reviews 3 stars 0
  • 1 2-star review 2 stars 1
  • 0 1-star reviews 1 star 0

Add my review

See all reviews

Contributors

  • Matt Miller
  • Frankie Jarrett
  • Miller Media

Support

Got something to say? Need help?

View support forum

  • About
  • News
  • Hosting
  • Privacy
  • Showcase
  • Themes
  • Plugins
  • Patterns
  • Learn
  • Support
  • Developers
  • WordPress.tv ↗
  • Get Involved
  • Events
  • Donate ↗
  • Five for the Future
  • WordPress.com ↗
  • Matt ↗
  • bbPress ↗
  • BuddyPress ↗
WordPress.org
WordPress.org

Veneto

  • Visit our X (formerly Twitter) account
  • Visit our Bluesky account
  • Visit our Mastodon account
  • Visit our Threads account
  • Visit our Facebook page
  • Visit our Instagram account
  • Visit our LinkedIn account
  • Visit our TikTok account
  • Visit our YouTube channel
  • Visit our Tumblr account
Code is Poetry.