web-dev-qa-db-fra.com

Formulaires Gravity - Utiliser un formulaire pour pré-renseigner un formulaire Gravity

J'ai un formulaire personnalisé (codé en dur, pas un GF) sur une page que j'ai écrite moi-même:

<form id="tailor-select" method="POST">
    <ul>
        <li>
            <ul>
                <li>
                    <input name="input_9.1" type="checkbox" value="Cover Design" id="choice_2_9_1" tabindex="1">
                    <label for="choice_2_9_1" id="label_2_9_1">Cover Design</label>
                </li>
                <li>
                    <input name="input_9.2" type="checkbox" value="Artwork Creation" id="choice_2_9_2" tabindex="2">
                    <label for="choice_2_9_2" id="label_2_9_2">Artwork Creation/Redrawing/Relabelling <a rel="#artwork" href="javascript:void(0);">read more ></a></label>
                </li>
                <li>
                    <input name="input_9.3" type="checkbox" value="Map Creation" id="choice_2_9_3" tabindex="3">
                    <label for="choice_2_9_3" id="label_2_9_3">Map Creation</label>
                </li>
                <li>
                    <input name="input_9.4" type="checkbox" value="Indexing" id="choice_2_9_4" tabindex="4">
                    <label for="choice_2_9_4" id="label_2_9_4">Indexing <a rel="#indexing" href="javascript:void(0);">read more ></a></label>
                </li>
                <li>
                    <input name="input_9.5" type="checkbox" value="Proof Reading" id="choice_2_9_5" tabindex="5">
                    <label for="choice_2_9_5" id="label_2_9_5">Proof Reading <a rel="#proof" href="javascript:void(0);">read more ></a></label>
                </li>
                <li>
                    <input name="input_9.6" type="checkbox" value="Digital Deliverables" id="choice_2_9_6" tabindex="6">
                    <label for="choice_2_9_6" id="label_2_9_6">Digital Deliverables <a rel="#digital" href="javascript:void(0);">read more ></a></label>
                </li>
                <li>
                    <input name="input_9.7" type="checkbox" value="Author Liaison" id="choice_2_9_7" tabindex="7">
                    <label for="choice_2_9_7" id="label_2_9_7">Author Liaison <a rel="#author" href="javascript:void(0);">read more ></a></label>
                </li>
            </ul>
        </li>
        <li>
            <input type="submit" value="Ok! I'm ready to fill out the enquiry form >" class="choose">
        </li>
    </ul>
</form>

Ce que je veux faire, c'est que si l'une de ces cases à cocher est cochée, les données sont alors transmises à un formulaire Gravity (ID = 2) sur une autre page, et les cases à cocher correspondantes seront déjà cochées ...

Je comprends que les données doivent être POSTÉES et que l'action sur la soumission doit correspondre à l'URL de la page sur laquelle le formulaire GF est activé.

Je sais également que je peux utiliser des points d'ancrage dans mon fichier functions.php, mais la lecture de la documentation Gravity Forms ne dit rien sur l'utilisation d'un formulaire pour remplir un formulaire - du moins, aucun que je puisse voir/trouver. Un peu comme ça:

function populate_fields($value, $field, $name) {
    $values = array(
         'field_one'   => 'value one',
         'field_two'   => 'value two',
         'field_three' => 'value three',
    );
    return isset($values[$name]) ? $values[$name] : $value;
}
add_filter('gform_field_value', 'populate_fields', 10, 3);

Ma question est la suivante: comment puis-je transférer les données du formulaire personnalisé au formulaire Gravity?

Je ne sais pas vraiment par où commencer, j'ai bien peur

Merci = /

1
Remo Web

Essaye ça:

  1. Vérifiez que le champAllow est rempli dynamiquementbox (done).
  2. Entrez un nom de paramètre (dans cet exemple, je l'appellerai my_param).
  3. Ajoutez le code à functions.php:

    function populate_fields( $value, $field, $name ) {
        // Use the POSTed data if it's there
        return isset( $_POST[ $name ] ) ? $_POST[ $name ] : $value;
    }
    add_filter('gform_field_value_my_param', 'populate_fields', 10, 3);
    

Notez que le filtre est gform_field_value_{$parameter_name}, pas simplement gform_field_value.

Référence

Utilisation de la population dynamique

2
Pat J