Wordpress 在发送邮件之前,请验证来自7的联系人

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 !=="") {

我想检查地址文件是否有正确的地址,然后发送电子邮件。我的代码正在运行,但我希望在与7验证联系后执行我的代码。如果我的代码返回true,则表单将提交并发送电子邮件,否则显示警报,不应提交

$('.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检查。是的,地址文件是必需的,但我想检查一些其他验证?非常感谢你的帮助。但我所看到的可以通过答案检查