Wordpress联系人表单7自定义验证规则未执行



似乎无法获得add_filter((来开始为联系表单7(v5.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';
} 
} 
return $result;  
}
add_filter('wpcf7_validate_text','custom_text_validation_filter', 999, 2); 
add_filter('wpcf7_validate_text*', 'custom_text_validation_filter', 999, 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','custom_text_validation_filter', 999, 2); 
add_filter('wpcf7_validate_text*', 'custom_text_validation_filter', 999, 2); 

进一步尝试了不同的优先级来添加_filter。

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

未工作

您的功能做得好吗?在我看来,参数$tag是一个对象

除此之外,我看不出什么是阻塞:/

https://contactform7.com/2015/03/28/custom-validation/

最新更新