Snippet

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

Jak zresetować hasło administratora WordPressaTutorial dotyczący resetowania hasła administratora WordPressaResetowanie hasła administratora WordPressa za pomocą phpMyAdminDostosowanie strony resetowania hasła administratora WordPressaOpcje odzyskiwania hasła administratora WordPressaDostosowanie e-maila resetującego hasło administratora WordPressaJak zmienić hasło administratora WordPressaWtyczka do resetowania hasła administratora WordPressaLink do resetowania hasła administratora WordPressa nie działaResetowanie 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

1<?php 2// Function to add a custom password reset link for admins 3function wp_dudecom_add_admin_password_reset_link() { 4 add_menu_page( 5 'Admin Password Reset', // Page title 6 'Password Reset', // Menu title 7 'manage_options', // Capability 8 'wp-dudecom-password-reset', // Menu slug 9 'wp_dudecom_admin_password_reset_page', // Callback function 10 'dashicons-admin-network', // Icon 11 100 // Position 12 ); 13} 14add_action('admin_menu', 'wp_dudecom_add_admin_password_reset_link'); 15 16// Callback function to display the password reset form 17function wp_dudecom_admin_password_reset_page() { 18 if (!current_user_can('manage_options')) { 19 wp_die(__('You do not have sufficient permissions to access this page.')); 20 } 21 22 if (isset($_POST['wp_dudecom_reset_password'])) { 23 check_admin_referer('wp_dudecom_reset_password_action', 'wp_dudecom_reset_password_nonce'); 24 25 $user_id = get_current_user_id(); 26 $new_password = wp_generate_password(12, true); 27 28 wp_set_password($new_password, $user_id); 29 30 echo '<div class="updated"><p>' . __('Password has been reset. Please check your email for the new password.') . '</p></div>'; 31 32 wp_mail( 33 wp_get_current_user()->user_email, 34 __('Your New Admin Password'), 35 sprintf(__('Your new password is: %s'), $new_password) 36 ); 37 } 38 39 ?> 40 <div class="wrap"> 41 <h1><?php _e('Admin Password Reset'); ?></h1> 42 <form method="post" action=""> 43 <?php wp_nonce_field('wp_dudecom_reset_password_action', 'wp_dudecom_reset_password_nonce'); ?> 44 <p><?php _e('Click the button below to reset your admin password. A new password will be sent to your email.'); ?></p> 45 <p><input type="submit" name="wp_dudecom_reset_password" class="button-primary" value="<?php _e('Reset Password'); ?>" /></p> 46 </form> 47 </div> 48 <?php 49} 50 51// Function to customize the password reset email 52function wp_dudecom_customize_password_reset_email($message, $key, $user_login, $user_data) { 53 $site_name = wp_specialchars_decode(get_option('blogname'), ENT_QUOTES); 54 $message = sprintf(__('Hello %s,'), $user_data->display_name) . "\r\n\r\n"; 55 $message .= __('You requested a password reset for your account on ') . $site_name . ".\r\n\r\n"; 56 $message .= __('To reset your password, visit the following address:') . "\r\n\r\n"; 57 $message .= network_site_url("wp-login.php?action=rp&key=$key&login=" . rawurlencode($user_login), 'login') . "\r\n\r\n"; 58 $message .= __('If you did not request this, please ignore this email.') . "\r\n\r\n"; 59 $message .= __('Thanks!') . "\r\n"; 60 $message .= $site_name . "\r\n"; 61 62 return $message; 63} 64add_filter('retrieve_password_message', 'wp_dudecom_customize_password_reset_email', 10, 4); 65?>

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.