我在woocommerce中有一個簡單的註冊表單,它應該向註冊用戶發送電子郵件,但這不會發生。這裏是發送代碼的形式:Die()阻止wp_mail發送郵件
$(".submitbtn").click(function() {
$('#result').html('<img src="'+ajax_script.loading_img+'" class="loader" />').fadeIn();
var input_data = $('#wp_signup_form').serialize();
input_data += '&action=et_register_action';
$.ajax({
type: "GET",
dataType: "JSON",
url: ajax_script.ajax_url,
data: input_data,
success: function(response){
response = JSON.parse(response);
console.log(response);
$('.loader').remove();
if(response.status == 'error') {
var msgHtml = '<span class="error">' + response.msg + '</span>';
$('<div>').html(msgHtml).appendTo('div#result').hide().fadeIn('slow');
} else {
var msgHtml = '<span class="success">' + response.msg + '</span>';
$('<div>').html(msgHtml).appendTo('div#result').hide().fadeIn('slow');
$('#wp_signup_form').find("input[type=text], input[type=password], textarea").val("");
}
}
});
return false;
});
這是和登記處理的提取物:
if (is_wp_error($status)) {
$return['status'] = 'error';
$return['msg'] = __("Username already exists. Please try another one.", ETHEME_DOMAIN);
echo json_encode($return);
}
else {
$from = get_bloginfo('name');
$from_email = get_bloginfo('admin_email');
$headers = 'From: ' . $from . " <" . $from_email . ">\r\n";
$headers .= "MIME-Version: 1.0\r\n";
$headers .= "Content-Type: text/html; charset=UTF-8\r\n";
$subject = __("Registration successful", ETHEME_DOMAIN);
$message = et_registration_email($username);
wp_mail($email, $subject, $message, $headers);
$return['status'] = 'success';
$return['msg'] = __("Please check your email for login details.", ETHEME_DOMAIN);
echo json_encode($return);
}
die();
這模具()是推動我瘋了!
- 如果我保留它,頁面加載完美,用戶被添加到列表中,但沒有郵件到達。
- 如果我刪除它,添加用戶,郵件到達正確,但'j'字符串附加'0',所以我不能讀取它。
我發現wp_ajax.php以die(0);
結尾,因此在任何ajax輸出結尾附加'0'。一個人應該把die()
放在自己的代碼中,但是怎麼做呢?我也嘗試使用usleep(800000)
,但仍然無法正常工作。
郵件正常工作,所以我不想安裝任何第三方插件。 任何幫助是高度讚賞。
編輯: 幾個小時後,一個消息在發送郵件地址到達:
host outbound.mailspamprotection.com [96.127.176.250]
SMTP error from remote mail server after end of data:
550 A URL in this email (8theme . com) is listed on https://spamrl.com/. Please resolve and retry
這怎麼可能,如果我刪除die()
此郵件不被識別爲垃圾郵件?