Cum afișez date din gravity forms în șablonul meu?

23 ian. 2013, 17:04:55
Vizualizări: 67.5K
Voturi: 22

Prefață

Am instalat Gravity Forms, am creat un formular și utilizatorii trimit date către site-ul meu. Ceea ce doresc să fac este să afișez datele pe care utilizatorii le trimit către site-ul meu pe una dintre paginile mele.

Știu că există plugin-ul Gravity Forms Directory. Dar acesta oferă doar o prezentare fixă a datelor.

Întrebare

Există ceva în Gravity Forms care poate face ceva de genul acesta? (cod pseudo):

<?php gforms_get_field( $form_id, $entry_id, 'user_name_field' ); ?>
4
Comentarii

@GhostToast Crede-mă, am trecut prin documentație complet și nu există nicio informație despre cum să realizezi asta.

hitautodestruct hitautodestruct
24 ian. 2013 13:48:24

Notă din viitor: iată un plugin creat special pentru afișarea datelor din Gravity Forms în partea frontală: https://gravityview.co/

Dalton Rooney Dalton Rooney
6 aug. 2014 01:11:36

Pun pariu că dacă aș posta această întrebare pe SO, mi-ar spune să o postez aici :-) Ceva care s-a întâmplat deja cu o altă întrebare..

hitautodestruct hitautodestruct
26 feb. 2017 11:45:00
Toate răspunsurile la întrebare 3
1
25

Poți consulta documentația, dar cel mai probabil vei ajunge să citești adevărata documentație: codul sursă.

Dacă o faci, vei descoperi că:

  • GFFormsModel::get_leads($form_id) returnează o listă de intrări pentru un formular (poate că deja știi asta), unde fiecare element din matrice este la rândul său o matrice, un "Obiect Entry"
  • GFFormsModel::get_form_meta($form_id) returnează o listă de elemente meta ale câmpurilor (adică descrie numele, tipul, regulile etc.) din formular, unde fiecare element din matrice este un "Obiect Field"

Odată ce ai un Obiect Entry, poți accesa câmpurile ca elemente, după numărul câmpului. Dacă trebuie să găsești un câmp după nume sau tip, va trebui să parcurgi lista de câmpuri din formular pentru a găsi o potrivire, iar apoi să accesezi câmpul din intrare după ID-ul câmpului.

NB: determinarea tipului unui câmp se face cel mai bine prin transmiterea elementului meta al câmpului către GFFormsModel::get_input_type($field)

Edit: de asemenea, reține că în Obiectul Entry sunt returnate doar primele 200 de caractere din fiecare câmp. Dacă ai câmpuri care stochează mai multe informații, va trebui să le ceri explicit, de exemplu apelând GFFormsModel::get_field_value_long($lead, $field_number, $form).

24 ian. 2013 12:00:13
Comentarii

FYI, Un administrator Gravity Forms a postat acest fragment de cod pentru un shortcode http://pastebin.com/kHpaHQvi de asemenea.

hitautodestruct hitautodestruct
29 ian. 2013 11:27:57
3
21

Mulțumiri către webaware pentru răspunsul lor.

Iată câteva informații rapide pentru cei care caută un punct de plecare. Acest cod preia un ID de intrare și recuperează datele și formularul asociate. În acest caz, folosesc URL-ul pentru a transmite valoarea. De exemplu: somedomeniu.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>
19 mai 2013 02:22:58
Comentarii

Codul tău este grozav, dar nu va funcționa pentru Câmpuri avansate precum adresa sau nume/prenume deoarece acestea folosesc . pentru a separa ID-ul lor

RPDeshaies RPDeshaies
30 sept. 2014 21:58:19

De asemenea, nu va funcționa pentru checkbox-uri.

numediaweb numediaweb
19 iul. 2015 14:35:21

Cum pot obține informațiile utilizatorului care a postat intrarea?

John John
10 feb. 2016 17:32:59
1

Ai putea folosi un hook gform_after_submission pentru a scrie tot ce ai nevoie într-un tip de postare personalizată, ceea ce ar putea fi mai ușor de manipulat "pe teren" și va fi protejat de, să zicem, ștergerea unui singur câmp și pierderea tuturor datelor asociate cu acesta.

http://www.gravityhelp.com/documentation/page/Gform_after_submission

Yoast are un ghid destul de bun despre scrierea în câmpuri personalizate, fără a folosi nici măcar hook-ul. http://yoast.com/gravity-forms-custom-post-types/

Mult succes!

24 ian. 2013 16:56:39
Comentarii

Duplicarea datelor în acest fel pare un pic neplăcută.

Felix Eve Felix Eve
18 sept. 2014 10:01:37