首页 > 解决方案 > 禁用特定用户的密码更改选项

问题描述

如何禁用 Wordpress 中特定用户的密码更改选项?

我有一个用户,我每周为多个用户设置一个新密码。但有些人试图更改此用户的密码。我不希望这样 - 但仅限于这个特定的用户个人资料。所有其他用户都应该能够更改他们的密码。

我尝试了不同的插件,但它们都不起作用。

如果您能对此提供帮助,非常感谢!

标签: wordpresschange-password

解决方案


将此添加到您的 function.php 文件中

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();

我们刚刚从 WordPress 后端删除了更改密码的字段。现在,一些用户还会尝试使用丢失密码?登录页面的表格。

为了防止他们这样做,我们将删除丢失的密码链接并通过添加以下代码禁用丢失的密码表单

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');

注意 - 您可以更新用户 ID - 根据您的要求


推荐阅读