Rozwijam bezpłatną wtyczkę do połączenia zewnętrznego systemu wsparcia z WordPress, aby móc uwierzytelniać użytkowników na WordPress.
W tym celu, obecnie z systemu zewnętrznego, użytkownik jest wysyłany na stronę logowania WordPress z tym na końcu
?action=freshdesk-remote-login
Moja wtyczka sprawdza następnie, czy użytkownik jest zalogowany do WP, jeśli nie, wyświetla formularz logowania i po udanym logowaniu przekierowuje go z powrotem do strony trzeciej.
Przekierowanie odbywa się za pomocą czegoś takiego: wp_redirect( $sso_url );
Teraz działa to dobrze, ale planuję zaoferować krótki kod, który można dodać do strony wybranej przez użytkownika. Teraz, gdy użytkownik przejdzie na tę stronę, jeśli jest zalogowany, powinien zostać przekierowany do strony trzeciej, jeśli nie, to na stronę logowania.
Czy istnieje sposób, w jaki możesz zasugerować wp_redirect do pracy w obrębie krótkiego kodu?
wp_redirect( $sso_url );
i to po prostu działało.wp_redirect
nie działa w krótkim kodzie w normalnych warunkach. Właśnie sprawdziłem. Jeśli działa dla Ciebie, Twój motyw lub wtyczka działa podobnie do tego, co zasugerowałem, aby działało.wp_redirect()
wykonuje przekierowanie za pośrednictwem nagłówków HTTP, więc technicznie nie będzie (a przynajmniej nie powinno) działać po uruchomieniu wyjścia strony. Więc nie możesz po prostu użyć tej funkcji w skrócie.Co nie znaczy, że nie można go używać do sterowania krótkim kodem. Możesz sprawdzić warunki dopasowania (jeśli strona i strona zawiera krótki kod) przed rozpoczęciem drukowania (gdzieś wokół
template_redirect
zaczepu) i wtedy przekierować.Inną opcją byłoby wyjście warunkowo JavaScript, który będzie przekierowywać po załadowaniu strony.
źródło
wp_redirect()
ten kod?