【问题标题】:How to pre-select a selct box in Ninja Forms from a query string如何从查询字符串中预选 Ninja Forms 中的选择框
【发布时间】:2019-03-31 16:07:59
【问题描述】:

我正在尝试通过传递查询字符串?request=call-back 从另一个页面的联系人页面上的我的联系人的选择字段中预先选择一个值。我正在使用 Ninja Forms,我在选择字段中的值是:给我们发电子邮件、回拨

我尝试了以下方法:

add_filter( 'ninja_forms_render_default_value', 'my_ninja_forms_pre_populate', 10, 3 );
function my_ninja_forms_pre_populate( $default_value, $field_type, $field_settings ){
    if( 'request' == $field_settings[ 'key' ] ){
        $default_value = $_GET['request'];
    }
    return $default_value;
}

我希望选择字段已经选择了回调。

【问题讨论】:

    标签: wordpress query-string ninja-forms


    【解决方案1】:

    我不需要使用我正在尝试的过滤器。我在 ninja form builder 中更改了管理下的键值,并确保没有预先选择任何值。

    【讨论】:

      【解决方案2】:

      这让我发疯了......但最终我找到了解决方案:

      // register custom get parameter (to use it with get_query_var() for safety reasons)
      function add_get_val() {
          global $wp;
          $wp->add_query_var('request');
      }
      
      add_action('init', 'add_get_val');
      
      add_filter('ninja_forms_localize_field_listselect', function ($field) {
          if (get_query_var('request')) {
              $request = get_query_var('request');
              $optionExists = FALSE;
      
              // check if field exists
              foreach ($field['settings']['options'] as $option) {
                  if ($option['value'] === $request) {
                      $optionExists = TRUE;
                      break;
                  }
              }
      
              if ($optionExists) {
                  foreach ($field['settings']['options'] as $key => $option) {
                      // deselect all fields
                      $field['settings']['options'][$key]['selected'] = 0;
      
                      // select parameter
                      if ($option['value'] === $request) {
                          $field['settings']['options'][$key]['selected'] = 1;
                      }
                  }
              }
          }
      
          return $field;
      });
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-03-25
        • 2017-11-25
        • 2021-02-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-09-20
        • 1970-01-01
        相关资源
        最近更新 更多