Anmelden / Registrieren Benutzer redirect mit Nachricht

Ich arbeite an einer WordPress-Website, wo ich versuche, den Benutzer umzuleiten, nachdem er gerade registriert oder eingeloggt ist, aber ich möchte auch Zugriff auf die Fehler oder Erfolgsmeldungen einmal auf der Homepage haben (ich benutze Sitzungsvariablen dafür).

Für das Protokoll verwende ich die Filterauthentifizierung und durch Anwenden des Filters wp_authenticate_username_password ich die Fehlermeldungen erhalten, sie in meine Sitzungsvariable wp_authenticate_username_password und den Benutzer redirect.

Für die Registrierung verwende ich die Aktion register_post und durch die Anwendung des Filters registration_errors ich auch die Fehlermeldungen erhalten und den Benutzer redirect.

Obwohl, wo ich kämpfe ist, dass ich realisiere, dass das Filter authenticate auch beim Registrieren und Senden einer E-Mail bei vergessenem Passwort aufgerufen wird. Daher, wenn die Registrierung erfolgreich ist, erhalte ich einen Login-Fehler statt meiner Erfolgsregistrierungsnachricht.

Ich hoffe mein Problem ist Ihnen klar. Wie würdest du das machen? Welchen Haken würdest du für jeden benutzen?

Vielen Dank Grüße.

Hier ist der Code (ein großer Teil davon ist, wo ich die Fehlermeldungen anpasse):

 add_filter( 'authenticate', 'redirection_login_fail', 99, 3); add_action('register_post', 'redirect_registration_fail', 29, 3); function redirect_registration_fail( $sanitized_user_login, $user_email, $errors ){ // Fetch error messages $errors = apply_filters( 'registration_errors', $errors, $sanitized_user_login, $user_email ); // Create session variable thast will contain eror messages $_SESSION['redirect_message'] = array(); if (is_wp_error($errors)) { $new_errors = new WP_Error(); $codes = $errors->get_error_codes(); foreach ($codes as $code) { switch($code) { case 'username_exists': $new_errors->add('username_exists', __('Unfortunately this username is already registered. Please choose another one.')); break; case 'email_exists': $new_errors->add('email_exists', __('Unfortunately this email is already registered. Please choose another one.')); break; default: $new_errors->add('registration_failed', __('Unfortunately your registration has failed. Please try again.')); break; } } $_SESSION['redirect_message_type'] = 'error'; $_SESSION['redirect_message'] = $new_errors->get_error_messages(); } else { $_SESSION['redirect_message_type'] = 'success'; $_SESSION['redirect_message'][] = 'Registration complete. Please check your e-mail.'; } // Redirect user wp_redirect(home_url()); } /* * Redirection home on fail login */ function redirection_login_fail( $user, $username, $password ) { if ( is_a($user, 'WP_User') ) { return $user; } $_SESSION['redirect_message'] = array(); // init message $_SESSION['redirect_message_type'] = 'error'; if ( empty($username) || empty($password) ) { $error = new WP_Error('authentication_failed', __('You must specify a valid username and password.')); $_SESSION['redirect_message'] = $error->get_error_messages(); } else { $errors = apply_filters('wp_authenticate_username_password', $user, $username, $password); if (is_wp_error($errors)) { $new_errors = new WP_Error(); $codes = $errors->get_error_codes(); $messages = $errors->get_error_messages(); $errs = array(); for ($i=0;$i $message) { switch($code) { case 'incorrect_password': $matches = array(); $pattern = "/(.*)/"; preg_match($pattern, $message, $matches); $new_errors->add('incorrect_password', __('Unfortunately the password you entered for the username '.$matches[1].' is incorrect. Forgot your password?')); break; case 'invalid_username': $new_errors->add('invalid_username', __('Unfortunately this is an invalid username. Forgot your password?')); break; default: $new_errors->add('authentication_failed', __('Unfortunately these credentials are incorrect. Forgot your password?')); break; } } $_SESSION['redirect_message'] = $new_errors->get_error_messages(); } } // Redirection wp_redirect(home_url()); } 

Solutions Collecting From Web of "Anmelden / Registrieren Benutzer redirect mit Nachricht"