我在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()
此邮件不被识别为垃圾邮件?