我在contact form 7
网站上使用Wordpress
向我的用户显示查询表单。
我最近修改了表单并添加了textarea
。但是我遇到的问题是当用户按住前端的“enter”键时删除用户添加的空白。一些用户将添加数百行空白,这是不可取的。
理想情况下,当他们提交表单时,我想用一个空格替换所有这些空格。所以我尝试了下面的内容:
add_filter('wpcf7_validate_textarea*', 'custom_textarea_validation_filter', 10, 2);
function custom_textarea_validation_filter($result, $tag){
$tag = new WPCF7_Shortcode($tag);
$value = $_POST[$tag->name];
if("your-enquiry" == $tag->name){
htmlentities($value);
trim(preg_replace('/\s\s+/', ' ', $value));
}
return $result;
}
不幸的是它不起作用......我不是那么担心阻止他们在前端做这件事,因为有些用户可能想要分开他们的段落等...但是在服务器端我想删除所有这些空白并用一个空行代替
有人有什么建议吗?
答案 0 :(得分:1)
您没有为$ result分配任何值,为什么要返回它?你的正则表达式也是错误的尝试:
add_filter('wpcf7_validate_textarea*', 'custom_textarea_validation_filter', 10, 2);
function custom_textarea_validation_filter($result, $tag){
$tag = new WPCF7_Shortcode($tag);
$value = $_POST[$tag->name];
if("your-enquiry" == $tag->name){
$value = htmlentities($value);
$result = trim(preg_replace('/\s{2,}/', ' ', $value));
}
return $result;
}
答案 1 :(得分:0)
试试这个:
add_filter('wpcf7_validate_textarea*', 'custom_textarea_validation_filter', 10, 2);
function custom_textarea_validation_filter($result, $tag){
$tag = new WPCF7_Shortcode($tag);
$value = $_POST[$tag->name];
if("your-enquiry" == $tag->name){
$value = htmlentities($value);
$result = trim(preg_replace('/\r|\n/', ' ', $value));
}
return $result;
}