php - 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*', '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);
进一步尝试了 add_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);
非工作
解决方案
推荐阅读
- google-sheets - 用一行公式将所有先前的值相加
- mysql - 计算多个日期范围之间的总天数
- reactjs - 使特定样式仅适用于表体中的 TableCell
- html - 导航栏中的下拉菜单在区域外打开。如何解决?
- python-3.x - 使用 MsAzure 快速入门示例代码将大型 .wav 文件转换为 .txt 文件 [连续识别]
- excel - 如何应用 InStr 将标题名称与名称数组匹配?
- amazon-dynamodb - DynamoDb 检查给定 SS 中包含的 SS 属性
- python - df.dropna() 不删除带有 na 的行
- r - R data.table 对函数参数执行连接
- javascript - Firebase 使用 javascript 查找具有用户名的用户