联系表单 7 特定表单 ID 的自定义验证


Contact Form 7 custom validation for specific form id

我在联系表单 7 中使用自定义验证,但我只需要验证特定表单,而不是所有表单。这是我的代码:

add_filter( 'wpcf7_validate_text*', 'my_custom_text_validation_filter', 20, 2 );
function my_custom_text_validation_filter( $result, $tag ) {
    $tag = new WPCF7_Shortcode( $tag );
    if ( 'name' == $tag->name ) { // validate name field only
        .... // my validation here
    }
    return $result;
}

CF7 总是在表单中添加一个名为 _wpcf7 的隐藏字段,其中包含表单 ID。可以使用该字段在执行代码之前检查您正在验证的表单:

add_filter( 'wpcf7_validate_text*', 'my_custom_text_validation_filter', 20, 2 );
function my_custom_text_validation_filter( $result, $tag ) {
    if ( isset($_POST['_wpcf7']) && $_POST['_wpcf7'] != 166) // Only form id 166 will be validated.
        return $result;
    $tag = new WPCF7_Shortcode( $tag );
    if ( 'name' == $tag->name ) { // validate name field only
        .... // my validation here
    }
    return $result;
}