Support » Allgemeine Fragen » Redirecting zur Formularseite nach dem Abschicken des Formulars an admin-post.ph

  • Gelöst cortlieb

    (@cortlieb)


    Hallo liebe Experten,
    ich hoffe, ich bin hier richtig, aber ich habe einige Posts gesehen, die sich mit WordPress unter der Haube beschäftigen.

    Ich habe mein erstes WordPress Plugin erstellt (ich habe einiges an Softwareentwicklungserfahrung, die kommt aber aus der embeded Welt).
    Das Plugin beinhaltet ein Formular, dass im Frontend genutzt wird. Um die Formulareingaben zu verarbeiten, habe ich eine action hinzugefügt, die admin-post.php adressiert.
    <form action="<?php echo esc_attr( admin_url( 'admin-post.php' ) ); ?>" method="post">
    Ich habe hooks für angemeldete und nicht angemeldete user benutzt, um das abgeschickte Formular auszuwerten.

    add_action( 'admin_post_no1_remember_form_response', array( $this, 'no1_evaluate_remember_form' ) );
    add_action( 'admin_post_nopriv_no1_remember_form_response', array( $this, 'no1_evaluate_remember_form' ) );

    Nachdem ich die übergeben Werte geprüft, gesichert und ausgewertet habe, möchte ich gerne zur Seite, auf der das Formular platziert ist zurückkehren. Dort soll dann eine (Erfolgs-)Nachricht statt des Formulars angezeigt werden.
    Trotz einigen googelns (und platzieren der Frage auf StackOverflow) habe ich nicht raus gefunden, wie ich das allgemein gültig machen kann.
    Ich meiner Entwicklungsumgebung habe ich wp_redirect mit einer festen URL benutzt.

    wp_redirect(
        esc_url_raw(
            add_query_arg(
                array(
                    'info'     => $form_eva_result,
                    'response' => $_POST,
                ),
                home_url( 'index.php/test-shortcode-no1/' )  
            )
        )
    );
    exit;

    Das funktioniert auch problemlos. Aber da ich das Formular (über einen shortcode) auf einer beliebigen Seite platzieren möchte, brauche ich einen Weg, um die URL der Formularseite zu ermitteln.
    Ich habe verstanden, das eine Übermittlung per AJAX das Problem umgehen könnte. Aber um etwas zu lernen (und als Fallback bei abgeschaltetem JS) würde ich zunächst gerne dieses Problem lösen.

    Vielen Dank
    Christian

    • Dieses Thema wurde geändert vor 2 Wochen von cortlieb.
    • Dieses Thema wurde geändert vor 2 Wochen von cortlieb.
    • Dieses Thema wurde geändert vor 2 Wochen von cortlieb.

    Die Seite, für die ich Hilfe brauche: [Anmelden, um den Link zu sehen]

Ansicht von 3 Antworten - 1 bis 3 (von insgesamt 3)
  • Moderator Hans-Gerd Gerhards

    (@hage)

    Hallo,
    das ist eher etwas für ein Forum wie z. B. https://wordpress.stackexchange.com/
    Hier befassen wir uns mehr mit Anwenderproblemen bei Nutzung von WordPress.

    Viele Grüße
    Hans-Gerd

    Thread-Starter cortlieb

    (@cortlieb)

    Ok, verstehe.
    Hatte es schon auf StackOverflow versucht, versuche ich es noch mal auf StackExchange.
    Danke für die Info!

    Setzte die Frage mal auf „gelöst“, auch wenn das im engeren Sinne nicht der Fall ist, aber sie ist ja zumindest abgeschlossen.

    Viele Grüße

    Christian

    Hallo,
    danke für die Rückmeldung und “Gelöst”-Markieren. 👍
    Viele Grüße
    Hans-Gerd

Ansicht von 3 Antworten - 1 bis 3 (von insgesamt 3)