Wordpress 在发送邮件之前,请验证来自7的联系人
我想检查地址文件是否有正确的地址,然后发送电子邮件。我的代码正在运行,但我希望在与7验证联系后执行我的代码。如果我的代码返回true,则表单将提交并发送电子邮件,否则显示警报,不应提交Wordpress 在发送邮件之前,请验证来自7的联系人,wordpress,wordpress-theming,contact-form-7,Wordpress,Wordpress Theming,Contact Form 7,我想检查地址文件是否有正确的地址,然后发送电子邮件。我的代码正在运行,但我希望在与7验证联系后执行我的代码。如果我的代码返回true,则表单将提交并发送电子邮件,否则显示警报,不应提交 $('.wpcf7-submit').on('click', function (e) { var address = $('input[name="your-address"]').val(); //e.preventDefault(); if(city !=="") {
$('.wpcf7-submit').on('click', function (e) {
var address = $('input[name="your-address"]').val();
//e.preventDefault();
if(city !=="") {
jQuery.post(gs_cf7_url, {data:address, action:'gs_cf7_check_lat_lag'}, function (response){
if(response=="no") {
alert('Sorry we couldnt find the location');
} else {
//$(".wpcf7-submit").unbind("submit").submit();
//$(".wpcf7-submit").unbind("submit");
}
});
}
});
我正在寻找一个钩子,比如
add_action('wpcf7_-before_-send_-mail','save_-form')代码>如果有javascript钩子?来自7的联系人逻辑如下。单击Submit,启动ajax,用php代码执行所有验证,并返回js内部函数$.wpcf7AjaxSuccess=function(数据、状态、xhr$表单)。此函数检查data.invalids,如果为true,则显示错误消息
这意味着在联系表单7验证之后执行检查已经太迟了,因为当php代码接受所有有效数据时,它会发送电子邮件并将控制权返回给$.wpcf7AjaxSuccess
作为一种解决方法,您可以根据CF7中的要求在字段上标记地址字段,monitor.focusout()事件(输入[name=“your address”]),并在输入的地址无效时将其清除。单击“提交”后,CF7将不再发送电子邮件,并将需要您的字段
尝试以以下方式更改代码:
$('input[name="your-address"]).focusout( function () {
var address = $('input[name="your-address"]').val();
//e.preventDefault();
if(city !=="") {
jQuery.post(gs_cf7_url, {data:address, action:'gs_cf7_check_lat_lag'}, function (response){
if(response=="no") {
alert('Sorry we couldnt find the location');
$('input[name="your-address"]').val('');
} else {
//$(".wpcf7-submit").unbind("submit").submit();
//$(".wpcf7-submit").unbind("submit");
}
});
}
});
我没有检查它,因为我没有您的其他代码(gs_cf7_check_lat_lag),所以请将其视为解决问题的方法。与7联系的逻辑如下。单击Submit,启动ajax,用php代码执行所有验证,并返回js内部函数$.wpcf7AjaxSuccess=function(数据、状态、xhr$表单)。此函数检查data.invalids,如果为true,则显示错误消息
这意味着在联系表单7验证之后执行检查已经太迟了,因为当php代码接受所有有效数据时,它会发送电子邮件并将控制权返回给$.wpcf7AjaxSuccess
作为一种解决方法,您可以根据CF7中的要求在字段上标记地址字段,monitor.focusout()事件(输入[name=“your address”]),并在输入的地址无效时将其清除。单击“提交”后,CF7将不再发送电子邮件,并将需要您的字段
尝试以以下方式更改代码:
$('input[name="your-address"]).focusout( function () {
var address = $('input[name="your-address"]').val();
//e.preventDefault();
if(city !=="") {
jQuery.post(gs_cf7_url, {data:address, action:'gs_cf7_check_lat_lag'}, function (response){
if(response=="no") {
alert('Sorry we couldnt find the location');
$('input[name="your-address"]').val('');
} else {
//$(".wpcf7-submit").unbind("submit").submit();
//$(".wpcf7-submit").unbind("submit");
}
});
}
});
我没有检查它,因为我没有您的其他代码(gs_cf7_check_lat_lag),所以请将其视为解决问题的方法。谢谢@kagg Design。是的,地址文件是必需的,但我想检查一些其他的验证?非常感谢你的帮助。但是我所看到的可以由answerThank you@kagg Design检查。是的,地址文件是必需的,但我想检查一些其他验证?非常感谢你的帮助。但我所看到的可以通过答案检查