Wordpress Gravity Forms 获取列表值

标签 wordpress advanced-custom-fields gravity-forms-plugin

有人能告诉我如何从提交的包含列表字段的表单中提取值吗?

我正在尝试使用 Gravity Forms 创建一个前端发布表单,然后将提交的值分配给使用 Advanced Custom Fields 创建的自定义字段。

对于普通字段,您可以使用以下方法执行此操作:

add_action("gform_after_submission_1", "acf_submission", 10, 2);

function acf_submission($entry, $form)
{
   $post_id = $entry["post_id"];
   update_field('field_###', $entry['#'], $post_id ); 
   update_field('field_###', $entry['#'], $post_id ); 
   update_field('field_###', $entry['#'], $post_id );  
}

其中 field_### 是 ACF 自定义字段键,entry['#'] 是 Gravity Forms 字段 ID,$post_id 是您要更新/存储值的帖子的 ID。

使用 entry['#'] 可以很好地处理普通字段(文本、段落等),但列表(重复器)字段的存储方式略有不同。在数据库中,该值看起来像这样(对于具有 3 个字段(列)的列表字段,对于单击添加按钮添加列表字段的其他实例的人:

a:2:{i:0;a:3:{s:4:"Column 1 Name";s:7:"value input";s:6:"Column 2 Name";s:34:"value input";s:11:"Column 3 Name";s:24:"value input";}i:1;a:3:{s:4:"Column 1 Name";s:11:"value input";s:6:"Column 2 Name";s:19:"value input";s:11:"Column 3 Name";s:22:"value input";}}

我不知道如何提取这些值并将它们分配给 ACF 字段。我尝试了 entry['#.#'] 就像你对地址这样的字段所做的那样,但这没有用。

最佳答案

这是一个序列化数组,因此您可以使用 php 函数反序列化来提取值。

$array_values = unserialize($entry['#']);  
print_r($array_values); //see what your values are.

现在您已经有了自己的值,您可以在新的 $array_values 数组中访问它们。 Getting one value out of a serialized array in PHP

关于Wordpress Gravity Forms 获取列表值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24269983/

相关文章:

javascript - VueJS + 重力表单 API

php - 修改 WordPress header ,但我不确定我正在使用什么主题

html - 是否可以为类分配和输入 ID?

ajax - 重力形式 Ajax 不工作

javascript - 高级自定义字段 orderby 单选按钮值

php - 如何将自定义帖子标题显示为 "first_name last_name"

php - 如何将 ACF 值拉入自定义帖子类型存档

wordpress - 从 Woocommerce 产品变体中删除分页

wordpress - WooCommerce:日期作为属性术语

wordpress - Phpstorm 在使用带有全局变量 $wpdb 的prepare和get_results方法时发出警告