Zaloguj się do WordPressa za pomocą adresu e-mail zamiast nazwy użytkownika w prosty sposób

Jak zalogować się za pomocą adresu e-mail zamiast nazwy użytkownika w WordPressie; Logowanie do WordPressa za pomocą e-maila, a nie nazwy użytkownika; Włącz logowanie za pomocą e-maila w WordPressie; Logowanie do WordPressa za pomocą adresu e-mail; Czy mogę używać e-maila do logowania się do WordPressa?; Konfiguracja logowania e-mailem w WordPressie; Zezwól na logowanie za pomocą e-maila w WordPressie; Formularz logowania WordPress z e-mailem zamiast nazwy użytkownika; Zmień logowanie WordPressa na e-mail; Wtyczka do logowania e-mailem w WordPressie;

Objaśnienie

Chcesz zalogować się do WordPressa za pomocą swojego adresu e-mail zamiast nazwy użytkownika? Ten fragment kodu to umożliwia!

Jak to działa:

  • Kod włącza się w proces logowania WordPressa, aby umożliwić logowanie za pomocą adresu e-mail.
  • Sprawdza, czy wprowadzone dane logowania to adres e-mail. Jeśli tak, znajduje użytkownika powiązanego z tym adresem.
  • Jeśli użytkownik zostanie znaleziony, używa jego nazwy użytkownika do zakończenia procesu logowania.

Zmiany w formularzu logowania:

  • Etykieta formularza logowania zmienia się z "Nazwa użytkownika" na "Adres e-mail" za pomocą odrobiny JavaScriptu.
  • To pomaga użytkownikom zrozumieć, że mogą wpisać swój adres e-mail zamiast nazwy użytkownika.

Dzięki temu rozwiązaniu użytkownicy mogą łatwo logować się za pomocą swojego adresu e-mail, co sprawia, że proces jest bardziej intuicyjny i przyjazny dla użytkownika.

Kod

<?php
// Allow users to log in using their email address instead of username

// Hook into the 'authenticate' filter to modify the login process
add_filter('authenticate', 'wp_dudecom_allow_email_login', 20, 3);

/**
 * Allow login with email address.
 *
 * @param WP_User|WP_Error|null $user     The authenticated user object, or WP_Error or null if not authenticated.
 * @param string                $username The username or email address.
 * @param string                $password The password.
 * @return WP_User|WP_Error|null The authenticated user object, or WP_Error or null if not authenticated.
 */
function wp_dudecom_allow_email_login($user, $username, $password) {
    // Check if the username is an email address
    if (is_email($username)) {
        // Attempt to retrieve the user by email
        $user = get_user_by('email', $username);

        // If a user is found, authenticate using the found user's login
        if ($user) {
            $username = $user->user_login;
        }
    }

    // Return the result of the default authentication process
    return wp_authenticate_username_password(null, $username, $password);
}

// Hook into 'login_form' to modify the login form
add_action('login_form', 'wp_dudecom_modify_login_form');

/**
 * Modify the login form to use email address instead of username.
 */
function wp_dudecom_modify_login_form() {
    ?>
    <script type="text/javascript">
        document.addEventListener('DOMContentLoaded', function() {
            var loginLabel = document.querySelector('label[for="user_login"]');
            if (loginLabel) {
                loginLabel.textContent = 'Email Address';
            }
        });
    </script>
    <?php
}
?>

Instrukcja

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

Wymagania wstępne:

  • Upewnij się, że masz dostęp do plików motywu WordPress lub możliwość stworzenia własnej wtyczki.
  • Wykonaj kopię zapasową swojej strony przed wprowadzeniem zmian w kodzie.

Kroki wdrożenia:

  1. Uzyskaj dostęp do panelu WordPress i przejdź do Wygląd > Edytor motywu, jeśli edytujesz plik functions.php, lub użyj klienta FTP, aby uzyskać dostęp do plików WordPress.
  2. Znajdź plik functions.php swojego aktywnego motywu lub stwórz nowy plik własnej wtyczki.
  3. Skopiuj podany fragment kodu i wklej go na końcu pliku functions.php lub w pliku własnej wtyczki.
  4. Zapisz zmiany w pliku.
  5. Wyloguj się ze swojej strony WordPress i spróbuj zalogować się, używając swojego adresu e-mail zamiast nazwy użytkownika, aby przetestować funkcjonalność.

Dzięki tym krokom Twoja strona WordPress umożliwi teraz użytkownikom logowanie się za pomocą adresów e-mail, co poprawi doświadczenia użytkowników, czyniąc proces logowania bardziej intuicyjnym.

Jeśli potrzebujesz dalszej pomocy w tej implementacji lub wymagasz bardziej zaawansowanej funkcjonalności, rozważ skontaktowanie się z wp-dude.com w celu uzyskania fachowej pomocy.