Umleiten auf eine andere Seite durch Registrierung, abhängig von der Seite

Ich habe den folgenden Code in meiner function.php:

add_filter('foo_registration_redirect', 'my_foo_registration_redirect', 12); function my_foo_registration_redirect( $redirect_to) { if (is_page(1693)) { $redirect_to = '/my-page'; return $redirect_to; } return $redirect_to; } 

Die if-statement ist aus irgendeinem Grund nicht wahr, wenn ich auf der entsprechenden Seite bin. Ich habe es auch versucht

  if (is_page('page-name')) { ... } 

die auch nie wieder wahr werden, obwohl sie auf der richtigen Seite sind. Jede Hilfe wird geschätzt. Der Filter funktioniert wie es sollte, wenn ich den Code zu ändern

 function my_foo_registration_redirect( $redirect_to) { $redirect_to = '/my-page'; return $redirect_to; } 

Allerdings benötige ich die bedingten, da ich 2 Registrierungsformulare habe, auf jeder ihrer Seiten, und eine von ihnen muss irgendwo anders zeigen.

Solutions Collecting From Web of "Umleiten auf eine andere Seite durch Registrierung, abhängig von der Seite"

Die function wird folgendermaßen geändert, wenn überprüft wird, ob das Formular von der richtigen Seite gesendet wurde:

 function my_foo_registration_redirect( $redirect_to) { if ($_SERVER['HTTP_REFERER'] !== get_the_permalink(1693)) { return $redirect_to; } $redirect_to = '/videoguide-startpakke'; return $redirect_to; } 

Vielen Dank für die super hilfreichen Kommentare!

EDIT: Hier ist eine etwas mehr polierte Lösung

 function my_foo_registration_redirect( $redirect_to) { $post_id = 1693; $post = get_post($post_id); $slug = $post->post_name; if ($_SERVER['HTTP_REFERER'] !== get_the_permalink($post_id)) { return $redirect_to; } $redirect_to = $slug; return $redirect_to; }