Henrik
Henrik

Reputation: 249

Disable password change option for specific user

How can I disable the password change option for specific user in Wordpress?

I have a user where I set a new password each week for multiple users. But some tried to change the password for this user. I don't want that - but only for this specific user profile. All the other users should be able toi change their password.

I have tried different plugins but none of them work.

Thanks a lot if you can help on this!

Upvotes: 0

Views: 1664

Answers (1)

Jitendra Popat
Jitendra Popat

Reputation: 2744

Add this in your function.php file

class Password_Reset_Removed
{

  function __construct() 
  {
    add_filter( 'show_password_fields', array( $this, 'disable' ) );
    add_filter( 'allow_password_reset', array( $this, 'disable' ) );
  }

  function disable() 
  {
    if ( is_admin() ) {
      $userdata = wp_get_current_user();
      $user = new WP_User($userdata->ID);
      if ( !empty( $user->roles ) && is_array( $user->roles ) && $user->roles[0] == 'administrator' )
        return true;
    }
    return false;
  }

}

$pass_reset_removed = new Password_Reset_Removed();

We have just removed the fields to change password from the back-end of the WordPress. Now, some users will also try to reset the password using the Lost your password? form from the log-in page.

In order to prevent them from doing that, we will remove lost password link and disable the lost password form by adding below code

function remove_lost_your_password($text)
  {
    return str_replace( array('Lost your password?', 'Lost your password'), '', trim($text, '?') );
  }
add_filter( 'gettext', 'remove_lost_your_password'  );

function disable_reset_lost_password()
  {
    return false;
  }
add_filter( 'allow_password_reset', 'disable_reset_lost_password');

Note - you can update userid - as per your requirements

Upvotes: 1

Related Questions