web-dev-qa-db-ja.com

後に更新するためにデータをユーザーアカウントに保存したマルチステップフォームを作成するための最良の方法は?

私は条件付きロジックでかなり長いマルチパートフォーム(1ページにつき50質問、数質問)を設定しようとしています。私は登録された訪問者に各ページ/ステップの間に彼らのデータを保存する能力を与えて、彼らに彼らが後で終わるために戻るためのオプションを与えることを望む。

私は重力フォームを持っていて、それがうまくいくかもしれないと思った、しかしこれは彼らがまだ提供する機能性ではないように思える。

これらの要件を満たす可能性のある他のフォームプラグインやコードに関するアドバイスや提案はありますか?ご協力ありがとうございます。

4
Michelle

もしあなたがカスタムテーマに取り組んでいるのであれば、ページテンプレートとWordPressのwp_ajax関数を使ったほうが簡単だと私は思います。

フォームは<?php get_template_part('form','0f-50-question') ?>を使ってページに含めることができます。

これがフォームの擬似コードです。

<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>

そしてファイルを処理するphpのために

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);
    }
}

この助けを願っています

3
ifdion