如何在 gform_pre_render() 中添加 Gravity Forms 字段

How to add Gravity Forms fields in gform_pre_render()

我有一个多页重力表,它通过单选按钮显示一系列问题。

Which of the following would you choose?

    o  Choice #1
    o  Choice #2

    +----------+   +----------+  
    |   BACK   |   |   NEXT   |  
    +----------+   +----------+  

每个问题和选择集都使用自定义字段(高级自定义字段)进行配置。我能够从 gform_pre_render 过滤器中循环访问所有这些问题和选择,现在我想即时创建所需的 Gravity Form 字段。

具体来说,每个问题都会有一个页面字段和单选按钮字段。

我确实尝试了 Google 上我能想到的所有搜索条件,并搜索了 Gravity Help 上的文档,但我只是没有看到动态添加字段的示例。

有人可以为我发光吗? :P

您可以使用 GFFields::create() 创建一个字段。这是一个粗略的示例(假设您在 gform_pre_render 过滤器中。

$props = array( 
    'id' => 123,
    'label' => 'My Field Label',
    'type' => 'text'
);
$field = GF_Fields::create( $props );
array_push( $form['fields'], $field );

您可能需要指定更多属性才能使字段正常工作。我建议在现有字段上使用 print_r() 以了解所有可用属性。您还需要确保您的字段 ID 是唯一的。

最后,为了从这些现有字段中捕获数据,您可能还希望通过 <a href="https://www.gravityhelp.com/documentation/article/gform_pre_validation/" rel="noreferrer">gform_pre_validation</a> 过滤器添加动态字段。