Redirect nur bei dem Login von der Startseite - Login with Ajax

  • Hey!

    Suche seit 3 Tagen, bisher ohne Erfolg. Vielleicht weiß jemand rat ?

    Nutze das Plugin: Login with Ajax. Dieses ist über einen Link und dazugehörigen Popup auf jeder Seite verfügbar. Damit können Subscriber und customer sich auf jeder Seite einloggen. Damit sie dort auch bleiben, habe ich bei den zugehörigen redirects nichts hinterlegt.

    Ich benötige eine Modifizierung, sodass eben jene beide Benutzertypen, wenn Sie sich auf der Startseite einloggen, und nur dann, auf ihr Profil geleitet werden.

    Der zughörige Code lautet wie folgt:

    PHP
    public static function loginRedirect( $redirect, $redirect_notsurewhatthisis, $user ){		$data = self::$data;				if(is_user_logged_in()){			$lwa_redirect = self::getLoginRedirect($user);			if( $lwa_redirect != '' ){				wp_redirect($lwa_redirect);				exit();			}		}		return $redirect;	}
    	public static function getLoginRedirect($user){		$data = self::$data;		//Global redirect		$redirect = false;		if( !empty($data['login_redirect']) ){			$redirect = $data["login_redirect"];		}		//WPML global redirect		if( !empty($_REQUEST['icl_language_code']) ){			$code = $_REQUEST['icl_language_code'];			if( isset($data["login_redirect_".$code]) ){				$redirect = $data["login_redirect_".$code];			}		}		//Role based redirects		if( strtolower(get_class($user)) == "wp_user" ){			$user_role = array_shift($user->roles); //Checking for role-based redirects			if( isset($data["role_login"][$user_role]) ){				$redirect = $data["role_login"][$user_role];			}			//Check for language redirects based on roles			if( !empty($_REQUEST['icl_language_code']) ){				if( isset($data["role_login"][$user_role."_".$code]) ){					$redirect = $data["role_login"][$user_role."_".$code];				}			}		}		//Do string replacements		$redirect = str_replace('%USERNAME%', $user->user_login, $redirect);		$redirect = str_replace("%LASTURL%", $_SERVER['HTTP_REFERER'], $redirect);		if( !empty($_REQUEST['icl_language_code']) ){			$redirect = str_replace("%LANG%", $code.'/', $redirect);		}		return $redirect;	}

    Diesen habe ich so modifiziert:

    PHP
    public static function loginRedirect( $redirect, $redirect_notsurewhatthisis, $user ){		$data = self::$data;
    		global $current_user;		if ( is_user_logged_in() && ! current_user_can( 'edit_posts' ) && ( is_front_page() || is_home() ) ) {			wp_redirect( get_bloginfo('url') . '/members/'. $current_user->user_login . '/profile/');			exit();		}
    		else if(is_user_logged_in()){			$lwa_redirect = self::getLoginRedirect($user);			if( $lwa_redirect != '' ){				wp_redirect($lwa_redirect);				exit();			}		}		return $redirect;	}


    Allerdings wird dieser zugefügte Passus einfach ignoriert. Beim Login auf der Startseite, bleibt man auf der Startseite.. Hat jemand eine Idee was ich falsch mache ?

    Beste Grüße

    Möchtest du Freude im Leben, lebe im Augenblick und verzichte auf Angst und Egoismus

    • Anzeige

    Hallo!

    Wenn du gerade an deiner Website arbeitest oder dein aktuelles Hosting überdenkst: Wir betreiben mit NetzLiving eine Hosting-Plattform, die speziell auf Performance, Sicherheit und einfache Verwaltung ausgelegt ist.

    • ✔️ Schnelle Ladezeiten (optimiert für WordPress & Co.)
    • ✔️ Deutsche Server & DSGVO-konform
    • ✔️ Persönlicher Support (kein 0815-Ticket-System)

    Mehr erfahren

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!