使用ACF中的多个值预填充重力形式

时间:2018-04-22 12:57:44

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

以下是我想要实现的一个简单示例:

我有一个具有不同部分的重力形式,将通过动态预填充有条件地显示。问题是我似乎无法根据我的ACF数据填充它们(这也是复选框)。

如果我将值放入代码中,它的工作原理如下:

    <table id="supp_table" class="table">
                                    <thead class=" text-primary">
                                        <th>
                                            ID
                                        </th>
                                        <th>
                                            Name
                                        </th>
                                        <th>
                                            Email
                                        </th>
                                        <th>
                                            Address
                                        </th>
                                        <th>
                                            Phone No.
                                        </th>
                                        <th>
                                            Added BY
                                        </th>                                        
                                    </thead>

                                    <tbody runat ="server">
                                        <%=getSupplierData()%>

                                    </tbody>
                                </table>

为了让它被动态填充,我尝试了这样的东西,这些东西不起作用(用PHP不太好):

add_filter( 'gform_pre_render_2', 'my_populate_checkbox' );
function my_populate_checkbox( $form ) {

  foreach( $form['fields'] as &$field ) {

    if( 11 === $field->id ) {

      foreach( $field->choices as &$choice ) {

        if( 'mychoice' === $choice['value'] || 'anotherchoice' === $choice['value'] ) {
          $choice['isSelected'] = true;
        }
      } 
    } 
  } 

  return $form;
}

它不起作用,我知道我在这里遗漏了一些东西,但无法弄清楚它是什么:/任何帮助或指针都将受到高度赞赏!我试着保持精确,但如果需要更多信息,请告诉我,我会相应更新帖子。

1 个答案:

答案 0 :(得分:0)

在一些帮助下弄清楚:)如果有人需要这个功能,以下是它的工作原理:

add_filter( 'gform_pre_render_2', 'my_populate_checkbox' );
function my_populate_checkbox( $form ) {
  global $post;
  $adfields = get_field( 'addons', get_the_ID() );

  foreach( $form['fields'] as &$field ) {

    if( 11 === $field->id ) {

      foreach( $field->choices as &$choice ) {

        if( in_array( $choice['value'] ,$adfields )) {
          $choice['isSelected'] = true;
        }
      } 
    } 
  } 

  return $form;
}