我正在尝试插入错误消息,无论某些输入字段的总和是否大于某个数字。
更具体地说,联系表格是询问酒店房间的空缺。 对于每个房间,我需要知道那个房间里有多少人/宠物。 当然,它有一个限制,那就是4个人/宠物。
我想在他们为超过4人/宠物预订房间的任何时候插入错误消息。
在联系表格中,它将类似于:
<label> Adults*
[select* r1-adults "1" "2" "3" "4"] </label>
<label> Children*
[select* r1-children "0" "1" "2" "3"] </label>
<label> Babies*
[select* r1-babies "0" "1" "2" "3"] </label>
<label> Pets*
[select* r1-pets "0" "1" "2" "3"] </label>
在functions.php中:
add_filter( 'wpcf7_max_capacity*', 'custom_max_capacity_validation_filter', 20, 2 );
function custom_max_capacity_validation_filter( $result, $tag, $zero, $adults, $children, $babies, $pets ) {
$tag = new WPCF7_FormTag( $tag );
$zero = "0";
if ( 'r1-adults' == $tag->name AND 'r1-children' == $tag->name AND 'r1-babies' == $tag->name AND 'r1-pets' == $tag->name ) {
$adults = isset( $_POST['r1-adults'] ) ? settype(trim( $_POST['r1-adults'] ), "integer") : settype($zero, "integer");
$children = isset( $_POST['r1-children'] ) ? settype(trim( $_POST['r1-children'] ), "integer") : settype($zero, "integer");
$babies = isset( $_POST['r1-babies'] ) ? settype(trim( $_POST['r1-babies'] ), "integer") : settype($zero, "integer");
$pets = isset( $_POST['r1-pets'] ) ? settype(trim( $_POST['r1-pets'] ), "integer") : settype($zero, "integer");
$sum=$adults+$children+$babies+$pets;
if ($sum > 4 ) {
$result->invalidate( $tag, "Max occupancy per room allowed 4 people/pets" );
}
}
return $result;
}
我从这里开始主草稿:http://contactform7.com/2015/03/28/custom-validation/
然而,它不起作用。实际上,我不确定如何调整条件
if ( 'your-email-confirm' == $tag->name )
对我来说。
有人可以帮我修复这个功能吗?谢谢!