Dodaj funkcjonalność resetowania hasła dla administratorów WordPressa
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:
- 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.
- Znajdź plik: Przejdź do
wp-content/themes/twoj-aktywny-motyw/functions.php
lub utwórz nowy plik własnej wtyczki wwp-content/plugins/
. - Edytuj plik: Otwórz plik
functions.php
lub plik własnej wtyczki w edytorze tekstu. - 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.
- Zapisz zmiany: Zapisz plik i prześlij go z powrotem na serwer, jeśli korzystasz z FTP.
- Zweryfikuj funkcjonalność: Zaloguj się do panelu administracyjnego WordPress. Powinieneś zobaczyć nowy element menu oznaczony jako "Resetowanie hasła" w menu administratora.
- 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.