【问题标题】:Gravity forms pre-selected choices checkboxes field重力形式预选选项复选框字段
【发布时间】:2020-03-25 14:38:53
【问题描述】:

我正在使用带有一个单选按钮和一个复选框字段的重力表单,它们都有相同的选择。 我需要的是当我的用户在单选按钮上选择一个选项时,该选项会自动在复选框字段中预先选择。 他不必再次选择它。

我看到我必须使用一些过滤器,例如下面的那个,但我无法成功自定义它以完成我需要的操作。

如果有人可以帮助我,他会救我的命。

<?php

# Make sure to replace {id} with your form's id
add_filter( 'gform_pre_render_{id}', 'my_populate_checkbox' );

function my_populate_checkbox( $form ) {

/**
* Loop through form fields
*
* Note we are using the `$field` array as a direct reference using `&`. 
* This means that changing its value will within the loop will 
* change the corresponding `$form` array item
*/
foreach( $form['fields'] as &$field ) {

# Make sure to change `1` to the ID of the checkbox field that you want to pre-populate
if( 1 === $field->id ) {

  /**
   * Loop through the choices for this checkbox
   *
   * Note again that we are passing `$choice` by reference in order to change the 
   * corresponding array item within the `$field` array
   */
  foreach( $field->choices as &$choice ) {

    /**
     * If this choice has a value of 'red' or 'blue', then make sure the checkbox is pre- 
   checked
     * by setting the `isSelected` parameter to `true`
     */

    if( 'red' === $choice['value'] || 'blue' === $choice['value'] ) {
      $choice['isSelected'] = true;
    }
   } # end foreach: $field->choices
   } # end if: $field->id equals 1
   } # end foreach: $form['fields']

    # return the altered `$form` array to Gravity Forms
   return $form;

    } # end: my_populate_checkbox

【问题讨论】:

    标签: wordpress select checkbox gravityforms


    【解决方案1】:

    很高兴这对你有用,Jean。

    对于需要执行此操作的其他人,我们编写了完整的流程演练以及易于理解的用例。

    How to Check Checkboxes (and Other Choice-based Fields) Conditionally

    这是一个速成课程:

    1. 创建映射表

      创建一个表单,用于跟踪在选择给定选项(在另一个字段中)时应选中哪些复选框。

    2. 提交表单条目

      现在您将完成一些数据输入。选择触发选项,然后选择应为该选项选中的每个复选框。

    3. 复制映射表

      接下来,您将根据映射表单创建一个新表单。这是您的用户将实际与之交互的表单。映射表只适合您。

    4. 映射您的字段

      最后,使用 Populate Anything 根据所选选项动态检查(即填充值)复选框字段,并从映射表单中检查该选项的复选框。

    【讨论】:

      【解决方案2】:

      感谢Gravity Wiz 团队回答我的问题。这里有一个视频来解释如何做到这一点:https://www.loom.com/share/f20184e287be49e89116d4c641c77c11

      这个想法很简单: 1-您必须安装 Gravity Perks: Populate Anything 2-您必须映射 2 个表格:一个带有数据,一个将接收数据(这个包含您的表格) 3-这两种形式必须具有相同的字段 4-在映射表单上,您必须根据需要创建条目

      这有点棘手,但对我来说非常适合

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-06-24
        • 1970-01-01
        • 2016-05-10
        • 2016-04-29
        • 2020-12-08
        • 2021-05-18
        • 2020-07-10
        • 1970-01-01
        相关资源
        最近更新 更多