it-swarm.com.de

Wie kann ich einen bestimmten Benutzer nach der Anmeldung umleiten?

Ich möchte einen Benutzer umleiten und seine Benutzer-ID ist 6. Deshalb habe ich diesen Code in meinen functions.php eingefügt.

if ( is_user_logged_in() ) {
    $user_id = get_current_user_id();
      if ($user_id == 6) {
            /* redirect users to front page after login */
            function redirect_to_front_page() {
                global $redirect_to;
                    if (!isset($_GET['redirect_to'])) {
                    $redirect_to = get_option('siteurl');
                    }
                }
            add_action('login_form', 'redirect_to_front_page');             
      }
    }   

Der Benutzer wechselt jedoch nach dem Anmelden immer noch zur RPofile-Seite. Wie kann ich das hinbekommen?

[Update] Dann habe ich versucht, zu Benutzernamen anstelle der Benutzer-ID zu ändern, aber immer noch gleich. Er bekommt nach dem Login eine Profilseite. so was:

function redirect_to_front_page() {
    global $redirect_to;
    if ( is_user_logged_in() ) {
        //$user_id = get_current_user_id();
        $current_user = wp_get_current_user();

          //if ($user_id == 6) 
          if ($current_user->user_login = 'hirer') {
            /* redirect users to front page after login */
            if (!isset($_GET['redirect_to'])) {
                $redirect_to = get_option('siteurl');
            }
        }

    }
}
add_action('login_redirect', 'redirect_to_front_page');  

immer noch nichts geändert. Der Benutzer erhält eine Profilseite, wenn er sich anmeldet.

3
Riffaz Starr

Sie müssen den login_redirect-Filter returning the redirect location verwenden:

add_filter( 'login_redirect', 'redirect_to_home', 10, 3 );
function redirect_to_home( $redirect_to, $request, $user ) {

    if( $user->ID == 6 ) {
        //If user ID is 6, redirect to home
        return get_home_url();
    } else {
        //If user ID is not 6, leave WordPress handle the redirection as usual
        return $redirect_to;
    }

}
7
cybmeta

verwenden Sie stattdessen login_redirect hook login_form und Sie können Bedingungen innerhalb Ihrer Funktion verschieben

wie unten Code.

function redirect_to_front_page() {
    global $redirect_to;
    if ( is_user_logged_in() ) {
        $user_id = get_current_user_id();
          if ($user_id == 6) {
            /* redirect users to front page after login */
            if (!isset($_GET['redirect_to'])) {
                return $redirect_to = get_option('siteurl');
            }
        }

    }
}
add_action('login_redirect', 'redirect_to_front_page' , 10 , 3 );             
1
shyammakwana.me