Php 可湿性粉剂+;AJAX成功消息

Php 可湿性粉剂+;AJAX成功消息,php,ajax,wordpress,advanced-custom-fields,Php,Ajax,Wordpress,Advanced Custom Fields,我有一个多语言的网站,我应该显示一个成功的消息后,成功提交。我使用ACF field和wp_send_json_success()报告成功的发送,但控制台中出现错误。这封信寄得很成功。我如何才能正确地发送成功消息 PHP: add_action('wp_ajax_nopriv_send_email', 'send_email'); add_action('wp_ajax_send_email', 'send_email'); function send_email() { $check

我有一个多语言的网站,我应该显示一个成功的消息后,成功提交。我使用ACF field和wp_send_json_success()报告成功的发送,但控制台中出现错误。这封信寄得很成功。我如何才能正确地发送成功消息

PHP:

add_action('wp_ajax_nopriv_send_email', 'send_email');
add_action('wp_ajax_send_email', 'send_email');
function send_email() {

    $checkbox = $_POST['myCheckboxes'];
    if (isset($checkbox)) {
        echo $checkbox;
    }

    $checkbox_hy = $_POST['myCheckboxesHy'];
    if (isset($checkbox_hy)) {
        echo $checkbox_hy;
    }

    $checkbox_modal_2 = $_POST['modalCheckboks2'];
    if (isset($checkbox_modal_2)) {
        echo $checkbox_modal_2;
    }   

    $checkbox_subs = $_POST['subsCheckbox'];
    if (isset($checkbox_subs)) {
        echo $checkbox_subs;
    }

    $checkbox_sp = $_POST['supportCheckbox'];
    if (isset($checkbox_sp)) {
        echo $checkbox_sp;
    }

    $headers = 'Content-Type: text/html; charset="utf-8"';
    $url = $_POST['url'];
    $name = $_POST['name'];
    $fullname = $_POST['fullname'];
    $spFullname = $_POST['spFullname'];
    $hy_name = $_POST['hy_name'];
    $from = 'contact@test.com';
    $to = 'contact@test.com';
    $email = $_POST['email'];
    $hy_email = $_POST['hy_email'];
    $spEmail = $_POST['spEmail'];
    $modalEmail = $_POST['modalEmail'];
    $subsEmail = $_POST['subsEmail'];
    $msg = $_POST['msg'];
    $hy_msg = $_POST['hy_msg'];
    $modalMsg = $_POST['modalMsg'];
    $spMsg = $_POST['spMsg'];
    $company = $_POST['company'];
    $spCompany = $_POST['spCompany'];

    if ($hy_name) {
        $subject = '‘Any questions?’ form: ' . $_POST['hy_email'];        
    } elseif ($name) {
        $subject = 'Footer form: ' . $_POST['email'];
    } elseif ($fullname) {        
        $subject = 'Header form: ' . $_POST['modalEmail'];
    } elseif ($subsEmail) {        
        $subject = 'New blog subscription: ' . $_POST['subsEmail'];
    } elseif ($spEmail) {        
        $subject = 'Support form: ' . $_POST['spEmail'];
    }

    $message .= (!empty($name)) ?  '<p><strong>User Name</strong> : ' . $name .'  </p>' : '';
    $message .= (!empty($email)) ?  '<p><strong>User Email</strong> : '. $email .'</p>' : '';
    $message .= (!empty($msg)) ?  '<p><strong>User Message</strong> : '.$msg .'</p>' : '';
    $message .= (!empty($checkbox)) ?  '<p><strong>Checkboxs</strong> : '.$checkbox .'</p>' : '';

    $message .= (!empty($hy_name)) ?  '<p><strong>User Name</strong> : '.$hy_name .'</p>' : '';
    $message .= (!empty($hy_email)) ?  '<p><strong>User Email</strong> : '.$hy_email .'</p>' : '';
    $message .= (!empty($hy_msg)) ?  '<p><strong>User Message</strong> : '.$hy_msg .'</p>' : '';
    $message .= (!empty($checkbox_hy)) ?  '<p><strong>Checkbox</strong> : '.$checkbox_hy .'</p>' : '';


    $message .= (!empty($fullname)) ?  '<p><strong>Full Name</strong> : ' . $fullname .'  </p>' : '';
    $message .= (!empty($modalEmail)) ?  '<p><strong>User Email</strong> : ' . $modalEmail .'  </p>' : '';
    $message .= (!empty($company)) ?  '<p><strong>Company</strong> : ' . $company .'  </p>' : '';
    $message .= (!empty($modalMsg)) ?  '<p><strong>User Message</strong> : ' . $modalMsg .'  </p>' : '';
    $message .= (!empty($checkbox_modal_2)) ?  '<p><strong>Checkbox</strong> : '.$checkbox_modal_2 .'</p>' : '';

    $message .= (!empty($subsEmail)) ?  '<p><strong>User Email</strong> : '. $subsEmail .'</p>' : '';
    $message .= (!empty($checkbox_subs)) ?  '<p><strong>Checkbox</strong> : '.$checkbox_subs .'</p>' : '';

    $message .= (!empty($spFullname)) ?  '<p><strong>User Name</strong> : '.$spFullname .'</p>' : '';
    $message .= (!empty($spEmail)) ?  '<p><strong>User Email</strong> : '.$spEmail .'</p>' : '';
    $message .= (!empty($spCompany)) ?  '<p><strong>Company</strong> : ' . $spCompany .'  </p>' : '';
    $message .= (!empty($spMsg)) ?  '<p><strong>User Message</strong> : '.$spMsg .'</p>' : '';
    $message .= (!empty($checkbox_sp)) ?  '<p><strong>Checkbox</strong> : '.$checkbox_sp .'</p>' : '';


    $message .= (!empty($url)) ?  '<p><strong>Url:</strong> : '.$url .'</p>' : '';
    $message .= '</body></html>';
    $send_mail = mail($to, $subject, $message, $headers);
    echo $send_mail;

    if($send_mail) {
            $data = get_field('success_message', 'option');
            wp_send_json_success($data, 200);
    }

    return  $msg;
    die();
}
jQuery('.submit').on('click', function(e) {
    e.preventDefault();

    // All data from form
    var str = $(this).closest('form').serialize();

    $("#contact-form input:checkbox:not(:checked)").each(function(e){ 
          str += "&"+this.name+'=false';
    });

    // Vars
    var name = jQuery('#name').val();
    var email = jQuery('#email').val();
    var msg = jQuery('#msg').val();
    var subj = jQuery('#subj').val();
    validateEmail(email);
    if (msg == '' || email == '' || validateEmail(jQuery('#email').val()) == false) {
        validateEmail(email);
        validateText(jQuery('#msg'));
        validateText(jQuery('#name'));
        return false;
    }

    jQuery.ajax({
        type: "post",
        url: ajaxactionurl,
        data: "action=send_email&" + str + "&url=" + page_url,
        dataType: 'json',
        success: function (response) {
            jQuery('#contact-form input').val('');
            jQuery('#contact-form textarea').val('');
            jQuery('.submit').text('Thank you!');
           console.log(response.data);
        },
        error: function (jqXHR, textStatus, errorThrown) {
            console.log(textStatus);
        }
    });

});

您的AJAX调用只应返回JSON,不应返回任何其他内容,因此进行以下更改

    $send_mail = mail($to, $subject, $message, $headers);
    //echo $send_mail; Comment this, it is not required

    if($send_mail) {
            $data = get_field('success_message', 'option');
            wp_send_json_success( array('data' => $data ) , 200);  //Return as array.
    }

    //return  $msg; Comment this as well.
    die();

在JS的AJAX回调中,您将在使用
console.log(response.data)的地方获得数据

谢谢您的反馈,但在console show ParserError中,您可以检查网络选项卡中的响应是什么。可能是PHP语法错误。从网络->响应选项卡显示成功消息,但我不能在控制台中显示。在您的网络选项卡中,AJAX以JSON格式显示正确的响应?是的,true1{“success”:true,“data”:{“data”:“success message”}