前言
我已经安装了重力表单,创建了表单,并且用户正在向我的站点提交数据。我要做的是在我的页面之一上显示用户提交到我的网站的数据。
我知道这里有Gravity Forms Directory插件。但这仅给出了固定的数据表示。
题
有重力形式的东西可以做这样的事情吗?(伪代码):
<?php gforms_get_field( $form_id, $entry_id, 'user_name_field' ); ?>
我已经安装了重力表单,创建了表单,并且用户正在向我的站点提交数据。我要做的是在我的页面之一上显示用户提交到我的网站的数据。
我知道这里有Gravity Forms Directory插件。但这仅给出了固定的数据表示。
有重力形式的东西可以做这样的事情吗?(伪代码):
<?php gforms_get_field( $form_id, $entry_id, 'user_name_field' ); ?>
Answers:
您可以看一下文档,但最终可能会读到真正的文档:源代码。
如果这样做,您会发现:
GFFormsModel::get_leads($form_id)
返回表单的条目列表(也许您已经知道一个表单),其中数组中的每个项目本身就是一个数组,一个“ Entry object ”GFFormsModel::get_form_meta($form_id)
返回表单形式的字段元元素列表(即描述名称,类型,规则等),其中数组中的每个项目都是“ Field object ”一旦有了Entry对象,就可以按字段号将字段作为元素访问。如果需要按名称或类型查找字段,则需要遍历表单中的字段列表以获取匹配项,然后按字段ID访问条目的字段。
注意:最好通过将字段的meta元素传递到来确定字段的类型 GFFormsModel::get_input_type($field)
编辑:还请注意,Entry对象中仅返回每个字段的前200个字符。如果您有存储更多信息的字段,则需要询问,例如通过致电GFFormsModel::get_field_value_long($lead, $field_number, $form)
。
感谢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>
Advanced fields
像address
或那样工作,first name/last name
因为它们.
用于拆分ID
您可以使用gform_after_submission
钩子将所需的所有内容写入自定义帖子类型,这可能更易于“在字段中操作”,并且可以避免有人删除单个字段并抹去与之相关的所有数据。
http://www.gravityhelp.com/documentation/page/Gform_after_submission
Yoast在编写自定义字段方面有相当不错的写作,甚至不需要使用钩子。 http://yoast.com/gravity-forms-custom-post-types/
祝好运!