web-dev-qa-db-fra.com

Formulaires Gravity sauter formulaire si déjà rempli en utilisant un cookie?

J'ai une page de formulaires Gravity configurée où, après avoir rempli le formulaire, vous êtes dirigé vers une page de confirmation où vous pouvez télécharger des ressources.

Le problème avec cette configuration est la suivante: supposons que quelqu'un remplisse le formulaire, accède à la page de confirmation, puis quitte le site. Plus tard, ils se rappellent qu'ils doivent télécharger un fichier différent à partir de la page de confirmation. Ils reviennent sur le site et doivent remplir à nouveau le formulaire.

Existe-t-il une option dans Gravity Forms pour spécifier un cookie ou quelque chose qui indique que l'utilisateur a déjà rempli le formulaire et pour le ramener directement à la page de confirmation?

1
Jake Wilson

Voici un code sur la manière dont vous pourriez simplement utiliser le crochet gform_after_submission de Gravity Forms pour définir un cookie basé sur votre ID de formulaire une fois soumis, puis vérifiez-le sur la page de confirmation en vous connectant à template_redirect.

Pour personnaliser la fonctionnalité, vous voudrez peut-être consulter la documentation pour setcookie , gform_after_submission et template_redirect .

Pour le formulaire

// Make sure to swap out {your_form_id} with the ID of the form.

add_action( 'gform_after_submission_{your_form_id}', 'wpse_set_submitted_cookie', 10, 2 );

function wpse_set_submitted_cookie( $entry, $form ) {

    // Set a third parameter to specify a cookie expiration time, 
    // otherwise it will last until the end of the current session.

    setcookie( 'wpse_form_submitted', 'true' );
}

Pour la page

add_action( 'template_redirect', 'wpse_protect_confirmation_page' );

function wpse_protect_confirmation_page() {
    if( is_page( 'my-confirmation-page' ) && ! isset( $_COOKIE['wpse_form_submitted'] ) ) {
        wp_redirect( home_url( '/my-form/' ) );
        exit();
    }
}
2
brianjohnhanna

C'est assez proche de ça:

http://gravitywiz.com/submit-gravity-form-access-content/

En fonction de votre scénario et , en supposant que le contenu de votre confirmation soit statique, vous pouvez configurer une page WordPress avec le contenu souhaité. Vous devez ensuite configurer l'extrait de sorte que l'utilisateur doit soumettre le formulaire pour accéder à ce contenu. Lors de visites ultérieures, il ne ferait que montrer le contenu (sans le formulaire) si l'utilisateur l'avait déjà soumis.

1
David