{"id":131373,"date":"2022-08-05T08:35:12","date_gmt":"2022-08-05T06:35:12","guid":{"rendered":"https:\/\/de.wordpress.org\/support\/topic\/redirecting-zur-formularseite-nach-dem-abschciken-des-formulars-an-admin-post-ph\/"},"modified":"2022-08-05T08:38:30","modified_gmt":"2022-08-05T06:38:30","slug":"redirecting-zur-formularseite-nach-dem-abschciken-des-formulars-an-admin-post-ph","status":"publish","type":"topic","link":"https:\/\/de.wordpress.org\/support\/topic\/redirecting-zur-formularseite-nach-dem-abschciken-des-formulars-an-admin-post-ph\/","title":{"rendered":"Redirecting zur Formularseite nach dem Abschicken des Formulars an admin-post.ph"},"content":{"rendered":"<p>Hallo liebe Experten,<br \/>\nich hoffe, ich bin hier richtig, aber ich habe einige Posts gesehen, die sich mit WordPress <strong>unter<\/strong> der Haube besch\u00e4ftigen.<\/p>\n<p>Ich habe mein erstes WordPress Plugin erstellt (ich habe einiges an Softwareentwicklungserfahrung, die kommt aber aus der embeded Welt).<br \/>\nDas Plugin beinhaltet ein Formular, dass im Frontend genutzt wird. Um die Formulareingaben zu verarbeiten, habe ich eine action hinzugef\u00fcgt, die admin-post.php adressiert.<br \/>\n<code>&lt;form action=&quot;&lt;?php echo esc_attr( admin_url( &#039;admin-post.php&#039; ) ); ?&gt;&quot; method=&quot;post&quot;&gt;<\/code><br \/>\nIch habe hooks f\u00fcr angemeldete und nicht angemeldete user benutzt, um das abgeschickte Formular auszuwerten.<\/p>\n<pre><code>add_action( &#039;admin_post_no1_remember_form_response&#039;, array( $this, &#039;no1_evaluate_remember_form&#039; ) );\nadd_action( &#039;admin_post_nopriv_no1_remember_form_response&#039;, array( $this, &#039;no1_evaluate_remember_form&#039; ) );<\/code><\/pre>\n<p>Nachdem ich die \u00fcbergeben Werte gepr\u00fcft, gesichert und ausgewertet habe, m\u00f6chte ich gerne zur Seite, auf der das Formular platziert ist zur\u00fcckkehren. Dort soll dann eine (Erfolgs-)Nachricht statt des Formulars angezeigt werden.<br \/>\nTrotz einigen googelns (und platzieren der Frage auf StackOverflow) habe ich nicht raus gefunden, wie ich das allgemein g\u00fcltig machen kann.<br \/>\nIch meiner Entwicklungsumgebung habe ich <code>wp_redirect<\/code> mit einer festen URL benutzt.<\/p>\n<pre><code>wp_redirect(\n    esc_url_raw(\n        add_query_arg(\n            array(\n                &#039;info&#039;     =&gt; $form_eva_result,\n                &#039;response&#039; =&gt; $_POST,\n            ),\n            home_url( &#039;index.php\/test-shortcode-no1\/&#039; )  \n        )\n    )\n);\nexit;<\/code><\/pre>\n<p>Das funktioniert auch problemlos. Aber da ich das Formular (\u00fcber einen shortcode) auf einer beliebigen Seite platzieren m\u00f6chte, brauche ich einen Weg, um die URL der Formularseite zu ermitteln.<br \/>\nIch habe verstanden, das eine \u00dcbermittlung per AJAX das Problem umgehen k\u00f6nnte. Aber um etwas zu lernen (und als Fallback bei abgeschaltetem JS) w\u00fcrde ich zun\u00e4chst gerne dieses Problem l\u00f6sen.<\/p>\n<p>Vielen Dank<br \/>\nChristian<\/p>\n","protected":false},"template":"","class_list":["post-131373","topic","type-topic","status-publish","hentry","topic-tag-formular","topic-tag-php"],"jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/de.wordpress.org\/support\/wp-json\/wp\/v2\/topic\/131373","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/de.wordpress.org\/support\/wp-json\/wp\/v2\/topic"}],"about":[{"href":"https:\/\/de.wordpress.org\/support\/wp-json\/wp\/v2\/types\/topic"}],"version-history":[{"count":3,"href":"https:\/\/de.wordpress.org\/support\/wp-json\/wp\/v2\/topic\/131373\/revisions"}],"predecessor-version":[{"id":131376,"href":"https:\/\/de.wordpress.org\/support\/wp-json\/wp\/v2\/topic\/131373\/revisions\/131376"}],"wp:attachment":[{"href":"https:\/\/de.wordpress.org\/support\/wp-json\/wp\/v2\/media?parent=131373"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}