我真搞不懂为什么要发送两次。它不在任何循环中,我有一个if语句来检查isset是否存在,但我没有做任何事情来阻止它发送两次。
这是一个基本表单,有4个字段,但数据是基于一个字段提取的,电子邮件是基于电子邮件字段发送的。
每次我提交页面时,它都会发送两次。
//Email Function
if(isset($_GET[\'email\'])){
if($_GET[\'employee\'] == \'1\') {
$pp = \'Plan Participant (Employee)\';
} else if($_GET[\'employee\'] == \'2\') {
$pp = \'Plan Participant (Employer)\';
}
//$headers = \'From: americasbest401k.com\' . "\\r\\n";
$company = \'<br><br>Company Name: \' . $co_name ;
$plan = \'<br><br>Plan Name: \' . $plan_name;
$headers = \'From: Fee Checker Page <Americasbest401k.com>\' . "\\r\\n";
$message = $_GET[\'name_field\'] . \' used the fee checker<br><br>Email: \' . $_GET[\'email\'] . \'<br><br>Participant or Sponsor: \' . $pp . \'\' . $company . \' \' . $plan;
wp_mail(\'[email protected]\', \'401k Fee Checker\', $message, $headers);
//email to user
$headers = \'From: \'.get_post_meta($post->ID,\'from-email\',true). "\\r\\n";
$message = wpautop( get_post_meta($post->ID,\'employer-email\',true)).\' <a href="\'. site_url().\'/fee-checker/?reffered=yes&company=\'. $_GET[\'company\'].\'"><strong>\'.get_post_meta($post->ID,\'fee-link-text\',true).\'</strong></a>\';
wp_mail($_GET[\'email\'], "Take Action on Your 401k!", $message, $headers);
}
最合适的回答,由SO网友:Jacob Rambo 整理而成
感谢您的评论!
我想出来了。我尝试了常规的php邮件功能,但仍然是一样的。然后我决定制作一个页面模板,只添加mail()函数、get\\u header()和get\\u footer()。它仍然发送了两次。所以我打开了标题。php并对wp\\u head()函数进行了注释,以排除我的函数和主题中包含的任何文件。但它还是发送了两次。因此,我删除了所有标题,它只发送了一次电子邮件。
缩小范围后,原来是favicon的链接。在主题中,可以选择上载自定义favicon。在标题中,它有代码来回显favicon的链接,但我还没有上传它,所以它是空的。出于某种奇怪的原因,这导致我的电子邮件被发送了两次。我认为这与标题有关,可能我不确定,但我更改了代码,使其仅在不为空时显示。像这样:
<?php if(of_get_option( \'favicon\' )):?>
<link href="<?php echo of_get_option( \'favicon\' ); ?>" rel="shortcut icon">
<?php endif; ?>
如果你要在标题部分之间设置元数据或链接,请确保包括,如果喜欢上面的内容,否则你可能会因为这么小的东西而让人发疯。