如何验证WordPress中的functions.php文件中的联系表单7字段

时间:2015-09-23 17:51:16

标签: regex wordpress-plugin contact-form-7

我在联系表格7中有一个数字字段。它必须是11位数字,前两位必须是24或42.请告诉我如何从functions.php文件执行此操作。这是我的正则表达式^(24|42)\d{9}$。但是我无法在functions.php文件

上使用它

3 个答案:

答案 0 :(得分:1)

检查http://contactform7.com/2015/03/28/custom-validation/以获取有关表单验证的一般信息。假设您的字段包含type="number"name="eleven-digits",您的过滤器可能如下所示:

add_filter( 'wpcf7_validate_number', function( $result, $tag ) {
    $tag = new WPCF7_Shortcode( $tag );
    if ( $tag->name = 'eleven-digits' && preg_match( '^(24|42)\d{9}$', $result ) ) {
        return true;
    }

    return false;
} );

如果您想要更详细的答案,则应在问题中添加更多详细信息。

答案 1 :(得分:0)

以下是答案

 add_filter( 'wpcf7_validate_text*', 'custom_number', 20, 2 );

function custom_number( $result, $tag ) {
$tag = new WPCF7_Shortcode( $tag );

if ( $tag->name = 'eleven-digits' ){
    $number = isset( $_POST['eleven-digits'] ) ? trim( $_POST['eleven-digits'] ) : '';
    if (!preg_match( '/^(24|42)\d{9}/', $number )) {
       $result->invalidate( $tag, "Enter correct number." );
    }
}
return $result;
}

答案 2 :(得分:-1)

我在末尾添加了表达式$,不允许超过9位数字,就像这样:

/^(24|42)\d{9}$/