我在联系表单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;
}
答案 0 :(得分:2)
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;
}