CF7 conditional logic

时间:2019-11-07 作者:Danny Basting

我正在寻找一种将条件逻辑添加到CF7表单的方法。我偶然发现了一些插件,但我发现这些插件似乎缺少我正在寻找的功能。

我希望根据下拉菜单的条件更改隐藏字段的值。

示例用例:

If language下拉菜单=“西班牙语”将textfield1设置为“/filedirectory/for/西班牙语/templatefile”

如果视频类型下拉=“开放式促销”将textfield2设置为“查看”

我希望有人能为我指明正确的方向,以便实现这一目标。

向你问好Danny

1 个回复
最合适的回答,由SO网友:Aurovrata 整理而成

实现这一点的唯一方法是使用自定义脚本文件。

使用您的functions.php 文件

add_action( \'wp_enqueue_scripts\',\'register_custom_script\');
//its important to register the script, else it will not load properly.
function register_custom_script(){
   wp_register_script( \'custom-cf7-script\', <url to your script file>, array( \'jquery\' ), null, true );
}
add_filter( \'do_shortcode_tag\',\'load_custom_script\', 10,3);
function load_custom_script($output, $tag, $args){
    if(\'contact-form-7\' != $tag){
      return $output; //not a cf7 form shortcode.
    }
    if(!isset($attr[\'id\']) || <yourform-id> != $attr[\'id\']){
      return $output; //not your form
    }
    //load your custom script that you previously registered.
    wp_enqueue_script( \'custom-cf7-script\');
}
在自定义脚本中,您需要执行以下操作:,

(function($){
  $(document).ready(function(){
    var $select = $(\'#language-drop-down\');
    var $hidden = $(\'#textfield1\');
    $select.on(\'change\',function(){
      if("spanish"==this.value) $hidden = "/filedirectory/for/spanish/templatefile";
    });
  })
})(jQuery)

相关推荐