it-swarm.com.de

Der beste Weg, um ein mehrstufiges Formular mit Daten zu erstellen, die für spätere Aktualisierungen im Benutzerkonto gespeichert wurden?

Ich versuche, ein ziemlich langes mehrteiliges Formular (~ 50 Fragen, ein paar Fragen pro Seite) mit bedingter Logik einzurichten. Ich möchte registrierten Besuchern die Möglichkeit bieten, ihre Daten zwischen den einzelnen Seiten/Schritten zu speichern und ihnen die Möglichkeit zu geben, später zum Abschluss zurückzukehren.

Ich habe Schwerkraftformen und dachte, dass das funktionieren könnte, aber es hört sich so an, als ob dies noch keine Funktionalität ist, die sie anbieten.

Hat jemand Ratschläge/Vorschläge zu anderen Formular-Plugins oder Code, die diese Anforderungen erfüllen könnten? Vielen Dank im Voraus für all Ihre Hilfe!

4
Michelle

Wenn Sie an einem benutzerdefinierten Thema arbeiten, ist es meiner Meinung nach einfacher, eine Seitenvorlage und die Funktion wp_ajax von WordPress zu verwenden.

Das Formular kann mit <?php get_template_part('form','0f-50-question') ?> in die Seite eingefügt werden.

Hier ist der Pseudocode für das Formular

<form id="quite-a-long-form" action="<?php echo admin_url('admin-ajax.php'); ?>" method="post" class="form" >
    $step = $_GET['step']
    if $step = 1
        //first section of question
        echo <label>
        echo <input>
        echo <label>
        echo <input>
    else if $step = 2
        //second section of question
        echo <label>
        echo <input>
        echo <label>
        echo <input>
    else if $step = 3
        //third section of question
        echo <label>
        echo <input>
        echo <label>
        echo <input>
    // just repeat for all sections
    endif
    <input type="Submit">
    <?php wp_nonce_field('input-answer','security-code-here'); ?>
    <input name="action" value="input-answer" type="hidden">
</form>

Und für das PHP, das die Datei verarbeitet

function process_add_transfer() {
    if ( empty($_POST) || !wp_verify_nonce('security-code-here','add_transfer') ) {
        echo 'You targeted the right function, but sorry, your nonce did not verify.';
        die();
    } else {
        // do your function here 
        wp_redirect($_POST['_wp_http_referer'].'?step='.$index_of_the_next step);
    }
}

Ich hoffe das hilft

3
ifdion