我正在尝试为字段名称VoucherNumber实现文本字段验证,该字段名称要求代码处于某个模式,即“WWV”后跟4个数字。
我成功地使用以下表达式^[W]WV-[0-9][0-9][0-9][0-9]
在谷歌文档上实现了这一点。
我通过各种答案进行了研究,并尝试在functions.php中添加此代码,但它无法正常工作。它只会显示表格正在发送(旋转轮),但即使在5分钟后也不会发送。
add_filter( 'wpcf7_validate_text*', 'validate_voucher_number', 20, 2 );
function validate_voucher_number( $result, $tag ) {
$tag = new WPCF7_FormTag( $tag );
if ( 'VoucherNumber' == $tag->name ) {
$VoucherNumber = isset( $_POST['VoucherNumber'] ) ? trim( $_POST['VoucherNumber'] ) : '';
if ( ! preg_match ( "^[W]WV-[0-9][0-9][0-9][0-9]" , $VoucherNumber) ){
$result->invalidate( $tag, "Voucher number is invalid" );
}
}
return $result;
}
答案 0 :(得分:0)
只需确保您的字段名称为VoucherNumber并尝试以下代码:
add_filter( 'wpcf7_validate_text', 'vouchervalidation', 20, 2 );
function vouchervalidation( $result, $tag ) {
if ( 'VoucherNumber' == $tag->name ) {
$VoucherNumber = isset( $_POST['VoucherNumber'] ) ? trim( $_POST['VoucherNumber'] ) : '';
if ( ! preg_match ( "^[W]WV-[0-9][0-9][0-9][0-9]" , $VoucherNumber) ){
$result->invalidate( $tag, "Voucher number is invalid" );
}
}
return $result;
}