Dodaj funkcjonalność resetowania hasła dla administratorów WordPressa

Jak zresetować hasło administratora WordPressa; Tutorial dotyczący resetowania hasła administratora WordPressa; Resetowanie hasła administratora WordPressa za pomocą phpMyAdmin; Dostosowanie strony resetowania hasła administratora WordPressa; Opcje odzyskiwania hasła administratora WordPressa; Dostosowanie e-maila resetującego hasło administratora WordPressa; Jak zmienić hasło administratora WordPressa; Wtyczka do resetowania hasła administratora WordPressa; Link do resetowania hasła administratora WordPressa nie działa; Resetowanie hasła administratora WordPressa bez e-maila;

Objaśnienie

Ten kod dodaje przydatną funkcję do obszaru administracyjnego WordPressa, umożliwiając resetowanie hasła administratora bezpośrednio z pulpitu nawigacyjnego. Oto jak to działa:

  • Link w menu administratora: W Twoim pulpicie nawigacyjnym pojawia się nowy element menu o nazwie "Resetowanie hasła". Kliknięcie go przenosi Cię na stronę, na której możesz zresetować swoje hasło.
  • Formularz resetowania hasła: Na tej stronie znajduje się prosty formularz z przyciskiem. Po kliknięciu, Twoje hasło zostaje zresetowane na nowe, losowo wygenerowane.
  • Powiadomienie e-mail: Po zresetowaniu, na zarejestrowany adres e-mail wysyłana jest wiadomość z nowym hasłem. Dzięki temu masz pewność, że możesz uzyskać dostęp do swojego konta z nowymi danymi logowania.
  • Dostosowanie e-maila: Otrzymany e-mail jest dostosowany, aby zawierał nazwę Twojej witryny oraz przyjazną wiadomość, co jasno wskazuje, o co chodzi w tej wiadomości.

Pamiętaj, że ta funkcja jest dostępna tylko dla użytkowników z odpowiednimi uprawnieniami, co zapewnia, że tylko upoważnieni administratorzy mogą resetować hasła. To prosty, ale skuteczny sposób zarządzania danymi logowania administratora bez konieczności korzystania z bardziej skomplikowanych metod, takich jak phpMyAdmin.

Kod

<?php
// Function to add a custom password reset link for admins
function wp_dudecom_add_admin_password_reset_link() {
    add_menu_page(
        'Admin Password Reset', // Page title
        'Password Reset', // Menu title
        'manage_options', // Capability
        'wp-dudecom-password-reset', // Menu slug
        'wp_dudecom_admin_password_reset_page', // Callback function
        'dashicons-admin-network', // Icon
        100 // Position
    );
}
add_action('admin_menu', 'wp_dudecom_add_admin_password_reset_link');

// Callback function to display the password reset form
function wp_dudecom_admin_password_reset_page() {
    if (!current_user_can('manage_options')) {
        wp_die(__('You do not have sufficient permissions to access this page.'));
    }

    if (isset($_POST['wp_dudecom_reset_password'])) {
        check_admin_referer('wp_dudecom_reset_password_action', 'wp_dudecom_reset_password_nonce');

        $user_id = get_current_user_id();
        $new_password = wp_generate_password(12, true);

        wp_set_password($new_password, $user_id);

        echo '<div class="updated"><p>' . __('Password has been reset. Please check your email for the new password.') . '</p></div>';

        wp_mail(
            wp_get_current_user()->user_email,
            __('Your New Admin Password'),
            sprintf(__('Your new password is: %s'), $new_password)
        );
    }

    ?>
    <div class="wrap">
        <h1><?php _e('Admin Password Reset'); ?></h1>
        <form method="post" action="">
            <?php wp_nonce_field('wp_dudecom_reset_password_action', 'wp_dudecom_reset_password_nonce'); ?>
            <p><?php _e('Click the button below to reset your admin password. A new password will be sent to your email.'); ?></p>
            <p><input type="submit" name="wp_dudecom_reset_password" class="button-primary" value="<?php _e('Reset Password'); ?>" /></p>
        </form>
    </div>
    <?php
}

// Function to customize the password reset email
function wp_dudecom_customize_password_reset_email($message, $key, $user_login, $user_data) {
    $site_name = wp_specialchars_decode(get_option('blogname'), ENT_QUOTES);
    $message = sprintf(__('Hello %s,'), $user_data->display_name) . "\r\n\r\n";
    $message .= __('You requested a password reset for your account on ') . $site_name . ".\r\n\r\n";
    $message .= __('To reset your password, visit the following address:') . "\r\n\r\n";
    $message .= network_site_url("wp-login.php?action=rp&key=$key&login=" . rawurlencode($user_login), 'login') . "\r\n\r\n";
    $message .= __('If you did not request this, please ignore this email.') . "\r\n\r\n";
    $message .= __('Thanks!') . "\r\n";
    $message .= $site_name . "\r\n";

    return $message;
}
add_filter('retrieve_password_message', 'wp_dudecom_customize_password_reset_email', 10, 4);
?>

Instrukcja

Aby wdrożyć funkcjonalność resetowania hasła dla administratorów, wykonaj następujące kroki:

Lokalizacja pliku: Dodaj kod do pliku functions.php swojego motywu lub do pliku własnej wtyczki.

Wymagania wstępne: Upewnij się, że masz dostęp administratora do swojej witryny WordPress.

Kroki wdrożenia:

  1. Dostęp do plików WordPress: Użyj klienta FTP lub menedżera plików swojego dostawcy hostingu, aby uzyskać dostęp do plików instalacyjnych WordPress.
  2. Znajdź plik: Przejdź do wp-content/themes/twoj-aktywny-motyw/functions.php lub utwórz nowy plik własnej wtyczki w wp-content/plugins/.
  3. Edytuj plik: Otwórz plik functions.php lub plik własnej wtyczki w edytorze tekstu.
  4. Dodaj kod: Skopiuj i wklej podany kod do pliku. Upewnij się, że jest umieszczony na końcu pliku lub w logicznej sekcji, jeśli używasz wtyczki.
  5. Zapisz zmiany: Zapisz plik i prześlij go z powrotem na serwer, jeśli korzystasz z FTP.
  6. Zweryfikuj funkcjonalność: Zaloguj się do panelu administracyjnego WordPress. Powinieneś zobaczyć nowy element menu oznaczony jako "Resetowanie hasła" w menu administratora.
  7. Przetestuj resetowanie hasła: Kliknij "Resetowanie hasła" i postępuj zgodnie z instrukcjami, aby zresetować swoje hasło. Sprawdź swoją skrzynkę e-mailową w poszukiwaniu nowego hasła.

Postępując zgodnie z tymi krokami, możesz łatwo dodać funkcję resetowania hasła dla administratorów w swojej witrynie WordPress. Jeśli potrzebujesz pomocy przy wdrożeniu lub wymagasz bardziej zaawansowanej funkcjonalności, rozważ skontaktowanie się z wp-dude.com w celu uzyskania fachowej pomocy.