Comment afficher des données de formulaires gravimétriques dans mon modèle? [fermé]

19

Préface

J'ai installé des formulaires Gravity, créé un formulaire et les utilisateurs envoient des données à mon site. Ce que je veux faire, c'est montrer que les données que les utilisateurs soumettent à mon site sur l'une de mes pages.

Je sais qu'il existe le plug-in Répertoire Gravity Forms . Mais cela ne donne qu’une présentation de données fixe.

Question

Y at-il quelque chose dans les formes de gravité qui peut faire quelque chose comme ça? (pseudo-code) :

<?php gforms_get_field( $form_id, $entry_id, 'user_name_field' ); ?>
    
posée hitautodestruct 23.01.2013 - 16:04

3 réponses

23

Vous pouvez consulter la documentation, mais vous finirez probablement par lire la documentation real : le code source.

Si vous le faites, vous constaterez que:

  • GFFormsModel::get_leads($form_id) renvoie une liste d'entrées pour un formulaire (vous le connaissez peut-être déjà), où chaque élément du tableau est lui-même un tableau, un " objet d'entrée "
  • GFFormsModel::get_form_meta($form_id) renvoie une liste de méta-éléments de champ (décrivant le nom, le type, les règles, etc.) sous la forme, où chaque élément du tableau est un " Objet Champ "

Une fois que vous avez un objet Entrée, vous pouvez accéder aux champs en tant qu'éléments, par leur numéro. Si vous devez rechercher un champ par son nom ou son type, vous devez parcourir la liste des champs du formulaire pour obtenir une correspondance, puis accéder au champ de l'entrée par ID de champ.

Remarque: il est préférable de déterminer le type d'un champ en passant l'élément de méta du champ à GFFormsModel::get_input_type($field)

.

Modifier: notez également que seuls les 200 premiers caractères de chaque champ sont renvoyés dans l'objet Entrée. Si vous avez des champs qui stockent plus d’informations, vous devez les demander, par exemple. en appelant GFFormsModel::get_field_value_long($lead, $field_number, $form) .

    
réponse donnée webaware 24.01.2013 - 11:00
21

Merci à Webaware pour sa réponse.

Voici des copies / pâtes pour ceux qui recherchent un bon départ. Cela prend un ID d'entrée et récupère le prospect et le formulaire à partir de celui-ci. Dans ce cas, j'utilise l'URL pour transmettre la valeur. par exemple. somedomain.com?entry=123.

<?php 
    $lead_id = $_GET['entry'];
    $lead = RGFormsModel::get_lead( $lead_id ); 
    $form = GFFormsModel::get_form_meta( $lead['form_id'] ); 

    $values= array();

    foreach( $form['fields'] as $field ) {

        $values[$field['id']] = array(
            'id'    => $field['id'],
            'label' => $field['label'],
            'value' => $lead[ $field['id'] ],
        );
    }
?>
<pre><?php print_r($values); ?></pre>
    
réponse donnée patnz 19.05.2013 - 01:22
1

Vous pouvez utiliser un crochet gform_after_submission pour écrire tout ce dont vous avez besoin dans un type d'article personnalisé, ce qui pourrait être plus facile à manipuler "en dehors du champ", et vous évitera, par exemple, que quelqu'un supprime un seul champ et le supprime. toutes les données qui lui sont associées.

enlace

Yoast a une très bonne écriture sur l'écriture dans des champs personnalisés, sans même utiliser le crochet. enlace

Bonne chance!

    
réponse donnée GhostToast 24.01.2013 - 15:56

Lire d'autres questions sur les étiquettes