A melhor maneira de criar formulários em várias etapas com dados salvos na conta de usuário para atualização posterior?

4

Estou tentando configurar um formulário de várias partes bastante longo (~ 50 perguntas, algumas perguntas por página) com lógica condicional. Gostaria de oferecer aos visitantes registrados a capacidade de salvar seus dados entre cada página / etapa e dar a eles a opção de retornar mais tarde.

Eu tenho Gravity Forms e achei que poderia funcionar, mas parece que isso não é funcionalidade que eles oferecem ainda.

Alguém tem algum conselho / sugestão sobre outros plugins ou códigos de formulário que possam atender a esses requisitos? Agradecemos antecipadamente por toda sua ajuda!

    
por Michelle 12.07.2011 / 23:37

1 resposta

2

Se você estiver trabalhando em um tema personalizado, acredito que seja mais fácil de ser feito com um modelo de página e com a função wp_ajax do WordPress.

O formulário pode ser incluído na página usando <?php get_template_part('form','0f-50-question') ?> .

Aqui está o pseudo código para o formulário

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

E para o php que irá processar o arquivo

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

Espero que esta ajuda

    
por ifdion 05.08.2012 / 00:35