coffee

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

Nākamais kods pilnībā bloķē paroles atjaunošanu visiem lietotājiem, noņem saiti “Lost your password?” pieteikšanās lapā un pāradresē visus, kas mēģina atvērt standarta paroles atiestatīšanas lapu, atpakaļ uz pieteikšanās lapu:

<?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

Cits kods arī pilnībā bloķē paroles atjaunošanu visiem lietotājiem un noņem saiti “Lost your password?” pieteikšanās lapā. Administratoriem saglabāta iespēja atjaunot paroles caur admin paneli, bet parastajiem lietotājiem paroles atjaunošana ir pilnībā bloķēta:

<?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.

WordPress

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.

WordPress

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


0 atbildes

Atbildēt

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

Atbildēt