Как мне отобразить данные из гравитационных форм в моем шаблоне? [закрыто]


Предисловие

Я установил гравитацию формы, создал форму, и пользователи отправляют данные на мой сайт. Что я хочу сделать, так это показать данные, которые пользователи отправляют на мой сайт, на одной из моих страниц.

Я знаю, что есть плагин Каталог гравитационных форм . Но это дает только фиксированное представление данных.

Вопрос

Есть ли что-нибудь в гравитационных формах, что может сделать что-то подобное? (псевдокод):

<?php gforms_get_field( $form_id, $entry_id, 'user_name_field' ); ?>
Author: Community, 2013-01-23

3 answers

Вы можете посмотреть документы, но, вероятно, в конечном итоге вы прочтете реальную документацию: исходный код.

Если вы это сделаете, то обнаружите, что:

  • GFFormsModel::get_leads($form_id) возвращает список записей для формы (возможно, вы уже знаете эту форму), где каждый элемент в массиве сам по себе является массивом, объектом записи ""
  • GFFormsModel::get_form_meta($form_id) возвращает список метаэлементов поля (т.е. Описывает имя, тип, правила и т.д.) в форме, где каждый элемент в массиве является полем " объект"

Как только у вас есть объект ввода, вы можете получить доступ к полям как к элементам по номеру поля. Если вам нужно найти поле по имени или типу, вам необходимо выполнить итерацию по списку полей в форме, чтобы получить совпадение, а затем получить доступ к полю записи по идентификатору поля.

ПРИМЕЧАНИЕ: определение типа поля лучше всего выполнять, передавая мета-элемент поля в GFFormsModel::get_input_type($field)

Изменить: обратите также внимание, что в объекте ввода возвращаются только первые 200 символов каждого поля. Если у вас есть поля, в которых хранится дополнительная информация, вам нужно будет запросить ее, например, позвонив GFFormsModel::get_field_value_long($lead, $field_number, $form).

 25
Author: webaware, 2013-01-24 10:08:22

Спасибо webaware за их ответ.

Вот несколько копий/макарон для тех, кто хочет быстро начать. Это берет идентификатор записи и извлекает из него интерес и форму. В этом случае я использую URL-адрес для передачи значения. например, somedomain.com?запись=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>
 21
Author: patnz, 2013-05-18 23:22:58

Вы можете использовать крючок gform_after_submission, чтобы записать все, что вам нужно, в пользовательский тип записи, которым, возможно, будет проще манипулировать "в поле", и он будет защищен, скажем, от того, что кто-то удалит одно поле и уничтожит все данные, связанные с ним.

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

У Yoast есть довольно хорошая запись о записи в пользовательские поля, даже без использования крюк. http://yoast.com/gravity-forms-custom-post-types/

Удачи!

 1
Author: GhostToast, 2013-01-24 14:56:39