WordPress

wtyczki – Niestandardowy login i reset hasła dla witryny BuddyPress

  • 25 grudnia, 2023
  • 3 min read
wtyczki – Niestandardowy login i reset hasła dla witryny BuddyPress


Moja witryna internetowa jest witryną społecznościową i siecią społecznościową obsługiwaną przez BuddyPress.

Ale sposób, w jaki zaprojektowano BuddyPress, polega na pracy w WordPressie i używaniu ustawień domyślnych WP-Login.Php Strona do obsługi logowania i resetowania haseł.

Jako witryna społecznościowa i sieci społecznościowej oznacza to, że setki osób będzie się logować, aby zarejestrować się i utworzyć konta w mojej witrynie.

W 99% przypadków nie chcemy, aby nasi Użytkownicy kiedykolwiek widzieli Administrator WP i WP-Login.Php Strony.

Krótko mówiąc, nie chcemy, aby nasi użytkownicy nawet wiedzieli, że a Administrator WP I WP-Login.Php Strona nawet istnieje.

Przepływ powinien być zgodny z tym, nawet jeśli ludzie celowo wpisują „ mojadomena.com/wp-admin ” lub celowo wpisują „ mojadomena.com/wp-login.php ”, powinien natychmiast i natychmiastowo przekierować ich do Niestandardowa strona logowania frontendu które stworzyliśmy – i nigdy nie powinni widzieć „ wp-admin ” I ” wp-login.php Strony.

Mam ten fragment kodu PHP, który już pomaga mi obsłużyć przekierowanie na interfejsie do my Niestandardowa strona logowania:

// Redirect wp-login.php to the custom login page
function wbcom_custom_login_redirect($redirect_to, $request, $user) {
    // Is there a user to check?
    if (isset($user->roles) && is_array($user->roles) && in_array('subscriber', $user->roles)) {
        // Redirect them to the default place
        return home_url('/login'); // Updated to use /login
    } else {
        return $redirect_to;
    }
}
add_filter('login_redirect', 'wbcom_custom_login_redirect', 10, 3);

// Redirect non-logged-in users accessing wp-login.php
function wbcom_redirect_non_logged_in_users() {
    if (!is_user_logged_in() && strpos($_SERVER['REQUEST_URI'], 'wp-login.php') !== false && !isset($_POST['wp-submit']) && !defined('DOING_AJAX')) {
        $custom_login_url = home_url('/login'); // Updated to use /login
        wp_redirect($custom_login_url);
        exit;
    }
}
add_action('init', 'wbcom_redirect_non_logged_in_users');

Ten kod działa, ponieważ faktycznie przekierowuje moich użytkowników na moją niestandardową stronę logowania.

Warto przeczytać!  Ukryj przycisk „Załaduj więcej”, jeśli w wybranej kategorii nie ma już więcej postów

Wyzwanie, przed którym stoję, polega na tym, że nie jestem w stanie ominąć tego WP-Login.Php Strona dla Resetowania hasła.

Powodem, dla którego muszę ominąć stronę WP-Login.Php w celu zresetowania hasła, jest to, że WP-Login.Php Strona kieruje ludzi na Strona administratora WP.

I Administrator WP Strona dezorientuje wielu naszych użytkowników. To sprawia, że ​​​​myślą, że na stronie internetowej prawdopodobnie istnieją 2 oddzielne przepływy użytkowników.

Ogólnym zamierzeniem jest posiadanie formularza, który może inicjować logowanie, a także resetowanie hasła.

I musi ominąć WP-Login.Php Strona w procesie resetowania hasła.

W tym samouczku wyjaśniono cały proces:

Oto pełny samouczek, który wyjaśnia cały proces, począwszy od utworzenia formularzy rejestracji, logowania i resetowania hasła–

Potrzebuję kogoś, kto pomoże mi przejść przez ten samouczek i przekonwertować cały kod z tego samouczka na funkcjonalną wtyczkę WordPress – która faktycznie może zrobić to, co chcę osiągnąć.

Pozdrowienia.


Źródło