自定义验证联系人表格7



我需要验证表单-如果有人输入了电话号码/电子邮件,则不再需要电子邮件/电话号码。我试过

(function($) {
$(document).ready(function(){
$(".wpcf7-email").on('change', function postinput(){
var id = $(this).val();
if(id) {
document.getElementById('phone').setAttribute("aria-required", "false");
$( "#phone" ).removeClass( "wpcf7-validates-as-required" )
} else {
document.getElementById('phone').setAttribute("aria-required", "true");
}
});
}); 
})(jQuery);

并尝试了PHP

add_filter( 'wpcf7_validate_text', 'xyz_validation', 20, 2 );
function xyz_validation( $result, $tag ) {
$email = isset( $_POST['email'] ) ? trim( $_POST['email'] ) : '';
$phone = isset( $_POST['phone'] ) ? trim( $_POST['phone'] ) : '';
if ( !empty($email) && !empty($subject) ) {
$result->invalidate( $tag, "Really?" );
}

我的联系表格(jquery-不需要PHP格式(无符号'*'(

[email* email id:email]
[number* phone id:phone]

实现这一点的一种方法是,在不使用javascript的情况下,使用CF7的智能电网布局扩展,它的设计是为了弥补CF7插件的许多缺点。它引入了一个自定义验证挂钩它允许根据整个提交的数据集来验证提交

add_filter( 'cf7sg_validate_submission','validate_field_submission',10,3);
function validate_field_submission($validation_errors, $submission, $cf7_key){
if('my-contact-form'==$cf7_key ){ //check this is the right form.
//$validation_errors is an array of field-names=>error messages.
//these include the simple validation exposed in the CF7 plugin for required fields/special field formats.
if(!empty($submission['phone']) && wpcf7_get_message( 'invalid_required' ) == $validation_errors['email']){
//reset the error message.
$validation_errors['email'] = '';
}
if(!empty($submission['email']) && wpcf7_get_message( 'invalid_required' ) == $validation_errors['phone']){
//reset the error message.
$validation_errors['phone'] = '';
}
return $validation_errors;
}    
}

最新更新