Kā atslēgt paroles atjaunošanu un maiņu WordPress
Kāpēc atslēgt paroles atjaunošanu vai maiņu WordPress
Ja jūsu vietnē ir ieslēgta reģistrācija, paroles atjaunošana ļauj atgūt aizmirstās paroles. Tomēr dažos gadījumos jūs varat vēlēties atslēgt šo opciju konkrētiem lietotājiem. Piemēram, ja esat izveidojis pagaidu kontu kādam vai demo vietni, uz kuras lietotāji pieslēdzas ar demo lietotājvārdu un paroli. Vienkāršākais risinājums šajā gadījumā ir vienkārši noņemt saiti uz paroles atjaunošanu, bet dažiem lietotājiem joprojām var saglabāties adrese paroles atjaunošanas formai.
Pirmais veids: atslēgt paroles atjaunošanu ar spraudni
Veids ar spraudni ir vienkāršāks un ērtāks. Tas ļauj atslēgt paroles atjaunošanu visiem lietotājiem. Instalējiet un aktivizējiet spraudni Reset Password Removed.
Piezīme: Reset Password Removed atslēdz paroles atjaunošanu visiem lietotājiem, tostarp administratoriem.
Pēc aktivizācijas spraudnis automātiski noņem saiti “Lost your password?” un bloķē paroles atjaunošanu visiem lietotājiem.
Otrais veids: manuāli atslēgt paroles atjaunošanu WordPress
Ja nevēlaties instalēt papildus spraudņus vai vēlaties precīzi atslēgt paroles atjaunošanu konkrētiem lietotājiem, var izmantot pielāgotu kodu. Atveriet teksta redaktoru un izveidojiet failu, piemēram, disable-password-reset.php, un ievietojiet vienu no zemāk sniegtajiem koda variantiem.
Atspējošana visiem lietotājiem
Variants 1: bloķēšana ar pāradresēšanu un saites “Lost your password?” noņemšanu
<?php
add_filter( 'allow_password_reset', '__return_false' );
add_action( 'login_init', function() {
    if ( isset( $_GET['action'] ) && in_array( $_GET['action'], ['lostpassword', 'retrievepassword'] ) ) {
        wp_redirect( wp_login_url(), 301 ); // Pāradresē visus uz pieteikšanās lapu
        exit;
    }
});
add_filter( 'gettext', function( $text ) {
    return ( $text === 'Lost your password?' ) ? '' : $text;
});
?>
Variants 2: bloķēšana ar iespēju atjaunot administratoriem
<?php
class Password_Reset_Removed {
    function __construct() {
        add_filter('show_password_fields', array($this, 'disable'));
        add_filter('allow_password_reset', array($this, 'disable'));
        add_filter('gettext', array($this, 'remove'));
    }
    function disable() {
        $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; // Administratoriem saglabāta iespēja atjaunot paroles caur admin paneli
        }
        return false; // Pārējiem lietotājiem nav pieejama
    }
    function remove($text) {
        return str_replace(array('Lost your password?', 'Lost your password'), '', trim($text, '?'));
    }
}
$pass_reset_removed = new Password_Reset_Removed();
?>
Atspējošana noteiktām lomām vai lietotājiem
Ja nepieciešams bloķēt paroles atjaunošanu tikai konkrētām lomām vai atsevišķiem lietotājiem, izmantojiet kodu ar pārbaudi pēc lomas vai lietotāja ID:
Bloķēšana visiem, izņemot administratorus:
<?php
add_filter('allow_password_reset', function($allow, $user_id) {
    $user = get_userdata($user_id);
    if (in_array('administrator', $user->roles)) return true; // Administratoriem var atjaunot paroli
    return false; // Pārējiem lietotājiem nav pieejama
}, 10, 2);
?>
Bloķēšana konkrētiem lietotājiem pēc ID:
<?php
add_filter('allow_password_reset', function($allow, $user_id) {
    $blocked_users = [3, 7, 15]; // Lietotāju ID, kuriem atjaunošana bloķēta
    if (in_array($user_id, $blocked_users)) return false;
    return true; // Pārējiem lietotājiem pieejama
}, 10, 2);
?>
Saglabājiet failu. Tad pieslēdzieties savam vietnes serverim caur FTP un atveriet mapi wp-content/plugins.

Augšupielādējiet izveidoto failu šajā mapē. Pēc tam dodieties WordPress admin panelī uz sadaļu Plugins, kur jūs redzēsiet jauno spraudni Disable Password Reset sarakstā ar instalētajiem spraudņiem. Aktivizējiet to.

Pēc aktivizācijas paroles atjaunošana tiks atslēgta atbilstoši izvēlētajam variantam: pilnībā visiem lietotājiem, tikai parastajiem lietotājiem vai noteiktām lomām un konkrētiem lietotājiem.
Mūsu specializācija — WordPress vietņu izstrāde un uzturēšana. Kontakti bezmaksas konsultācijai — [email protected], +371 29394520

Atbildēt
Vai vēlaties pievienoties diskusijai?Jūtieties brīvi sniegt savu ieguldījumu!