前言
我已经安装了重力表单,创建了一个表单,并且用户正在向我的站点提交数据。
我要做的是显示用户正在其中一个站点上提交的数据。我的页面。
我知道有一个Gravity Forms Directory插件。
但这仅给出了固定的数据表示。
问题
重力形式中是否有可以执行类似操作的内容? (伪代码):
<?php gforms_get_field( $form_id, $entry_id, 'user_name_field' ); ?>
#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
评论
gravityhelp.com/documentation/page/Developer_Docs@GhostToast相信我,我完全整理了文档,但没有关于如何实现此目的的任何信息。
未来的注意事项:这是一个明确用于在前端显示Gravity Forms数据的插件:gravityview.co
我敢打赌,如果我在SO上发布此问题,他们会告诉我将其发布在这里:-)另一个问题已经发生了某些事情。