未执行Wordpress Contact Form 7自定义验证规则

问题描述

似乎无法获取add_filter()来添加自定义验证规则以联系表单7(v5.2.1)。尝试了许多声称可以在该网站和其他网站上运行的示例。但到目前为止,似乎没有奏效。任何人都可以对此有所了解。

尝试以下代码。

function custom_text_validation_filter($result,$tag) {  
      $type = $tag['type'];  
      $name = $tag['name'];

      if($name == 'your-subject') { 
          $value = $_POST[$name];  
          if (preg_match('/[\'^£$%&*()}{#~><>|=_+¬]/',$value)){

            // $result->invalidate( $tag,"Invalid characters." ); // this did not work

            $result['valid'] = false;
            $result['reason'][$name] = 'Invalid characters';
          } 
      } 
      return $result;  
}
add_filter('wpcf7_validate_text','custom_text_validation_filter',999,2); 
add_filter('wpcf7_validate_text*',2); 

由于上述代码无效,请尝试以下操作。

function custom_text_validation_filter($result,$tag) {  
          $type = $tag['type'];  
          $name = $tag['name'];

          if($name == 'your-subject') { 
              $value = $_POST[$name];  
              if (preg_match('/[\'^£$%&*()}{#~><>|=_+¬]/',$value)){

                // $result->invalidate( $tag,"Invalid characters." ); // this did not work
    
                $result['valid'] = false;
                $result['reason'][$name] = 'Invalid characters';
              } 
          } 

    //Added below lines to fire validation error no matter what. But still contact form submits successfully.

          $result['valid'] = false;
          $result['reason'][$name] = 'Invalid characters';
          return $result;  
}
add_filter('wpcf7_validate_text',2); 

进一步尝试了将add_filter设置为不同的优先级。

add_filter('wpcf7_validate_text',1,2); 
add_filter('wpcf7_validate_text',2,10,20,2); 

没有工作

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)