前言
我已经安装了重力表单,创建了一个表单,并且用户正在向我的站点提交数据。
我要做的是显示用户正在其中一个站点上提交的数据。我的页面。
我知道有一个Gravity Forms Directory插件。
但这仅给出了固定的数据表示。
问题
重力形式中是否有可以执行类似操作的内容? (伪代码):
<?php gforms_get_field( $form_id, $entry_id, 'user_name_field' ); ?>


评论

gravityhelp.com/documentation/page/Developer_Docs

@GhostToast相信我,我完全整理了文档,但没有关于如何实现此目的的任何信息。

未来的注意事项:这是一个明确用于在前端显示Gravity Forms数据的插件:gravityview.co

我敢打赌,如果我在SO上发布此问题,他们会告诉我将其发布在这里:-)另一个问题已经发生了某些事情。

#1 楼

您可以看一下文档,但最终可能会读到真正的文档:源代码。

如果这样做,您会发现:



GFFormsModel::get_leads($form_id)返回表单的条目列表(也许您已经知道了),其中数组中的每个项目本身就是一个数组,即“条目对象”。

GFFormsModel::get_form_meta($form_id)返回表单中的字段元元素的列表(即描述名称,类型,规则等),其中数组中的每个项目都是“字段对象”

一旦有了Entry对象,您可以通过字段编号将字段作为元素访问。如果需要按名称或类型查找字段,则需要遍历表单中的字段列表以获取匹配项,然后按字段ID访问条目的字段。

NB:确定最好通过将字段的meta元素传递给GFFormsModel::get_input_type($field)来完成字段的类型。注意:还请注意,每个字段的前200个字符仅在Entry对象中返回。如果您有存储更多信息的字段,则需要询问它,例如通过调用GFFormsModel::get_field_value_long($lead, $field_number, $form)

评论


仅供参考,重力表单管理员也将此代码段发布为短代码pastebin.com/kHpaHQvi。

–hitautodestruct
2013年1月29日9:27



#2 楼

感谢webaware的回答。

以下是一些想要快速入门的人的副本/意大利面。这将获得一个条目ID,并从中检索线索和表格。在这种情况下,我使用URL来传递值。例如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>


评论


您的代码很棒,但由于它们使用,因此不适用于地址或名字/姓氏等高级字段。分割他们的ID

–RPDeshaies
2014-09-30 18:58

也无法在chckboxes中使用。

– Numediaweb
15年7月19日在11:35

如何获取发布条目的用户信息?

–约翰
16年2月10日在15:32

#3 楼

您可以使用gform_after_submission钩子将所需的所有内容写入自定义帖子类型,这可能更易于“在字段中操作”,并且可以避免有人删除单个字段并抹去与之关联的所有数据它。

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

Yoast在编写自定义字段方面写得很好,甚至没有使用钩子。
http://yoast.com/gravity-forms-custom-post-types/

祝你好运!

评论


像这样复制数据似乎有点麻烦。

–费利克斯·夏娃(Felix Eve)
2014年9月18日在7:01