Пользовательская проверка контактной формы 7 для определенного идентификатора формы

Я использую пользовательскую проверку в контактной форме 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;
}

person Gustavo    schedule 14.07.2016    source источник


Ответы (1)


CF7 всегда добавляет в форму скрытое поле с именем _wpcf7, содержащее идентификатор формы. Можно использовать это поле, чтобы проверить, какую форму вы проверяете перед выполнением кода:

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;
}
person Gustavo    schedule 14.07.2016
comment
потребовалось много времени, чтобы найти этот ответ ... большое спасибо! - person Aron; 16.01.2020