我相信我想做的事情很简单,但是在涉及PHP并努力获得一些相当简单的验证并在Contact Form 7中运行时,我还是一个新手。
基本上,我有一个仅向加拿大安大略省的某些邮政编码提供邮件的客户。结帐流程的第一阶段是电子邮件捕获表单,该表单还要求用户邮政编码以检查交付区域是否有邮件。
邮政编码是3个字符串:
我已经能够针对其中一个区域(例如L6A)编写简单的验证,但是我不确定如何对照整个邮政编码列表检查用户提交的值以及是否要区分大小写。
我的代码如下:
function custom_text_validation_filter($result, $tag) {
$type = $tag['type'];
$name = $tag['name'];
$needle = 'L6A';
//here textbox type name is 'postal-code'
if($name == 'postal-code') {
$value = $_POST[$name];
$pos = strpos($value, $needle);
if ($pos === false){
$result->invalidate( $tag, "Does Not Contain L6A" );
}
}
return $result;
}
add_filter('wpcf7_validate_text','custom_text_validation_filter', 10, 2);
add_filter('wpcf7_validate_text*', 'custom_text_validation_filter', 10, 2);
我希望能进行一次验证,以便在表单未通过验证时提供一条消息,例如“对不起,您不在我们的送货范围内”,并在其邮政编码位于列表中时将用户重定向到URL。
任何帮助都会很棒:)