¿La mejor manera de crear un formulario de varios pasos con datos guardados en la cuenta de usuario para actualizarlos más tarde?

4

Estoy intentando configurar un formulario de varias partes bastante largo (~ 50 preguntas, algunas preguntas por página) con lógica condicional. Me gustaría ofrecer a los visitantes registrados la posibilidad de guardar sus datos entre cada página / paso y darles la opción de regresar más tarde para finalizar.

Tengo Gravity Forms y pensé que podría funcionar, pero parece que esto no es todavía la funcionalidad que ofrecen.

¿Alguien tiene algún consejo / sugerencia sobre otros complementos o códigos de formularios que puedan cumplir estos requisitos? ¡Gracias de antemano por toda tu ayuda!

    
pregunta Michelle 12.07.2011 - 23:37

1 respuesta

2

Si está trabajando en un tema personalizado, creo que es más fácil hacerlo con una plantilla de página y la función wp_ajax de WordPress.

El formulario se puede incluir en la página usando <?php get_template_part('form','0f-50-question') ?> .

Aquí está el pseudo código para el formulario

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

Y para el php que procesará el archivo

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

    
respondido por el ifdion 05.08.2012 - 00:35

Lea otras preguntas en las etiquetas