WP_mail在检索会话数据后使用时会发送两封电子邮件

时间:2012-01-07 作者:Jamie

我正在使用wp\\u邮件功能在WordPress中发送电子邮件。在运行该函数之前,我从会话中检索一堆数据,从刚刚提交的表单中检索其他一些数据。例如:

$first_name = $_SESSION[\'first_name\'];
$last_name = $_SESSION[\'last_name\'];
$phone_number = $_POST[\'phone_number\'];
$message = $first_name . $last_name . $phone_number;
wp_mail($myemail,"Email sent",$message);
我正在使用名为WP-MAIL SMTP的插件通过Gmail的SMTP服务器进行发送。当我禁用此功能时,根本不会发送电子邮件。

出于某种原因,我收到了两封电子邮件。一个具有POST和会话信息,另一个仅具有会话信息。

任何帮助都将不胜感激!提前感谢,

杰米

我正在使用WordPress 3.3

1 个回复
最合适的回答,由SO网友:stealthyninja 整理而成

听起来好像您没有将代码包装到if 只有在表单实际提交时才会执行检查它的语句,即当您第一次查看页面时才会运行该语句(GET) 当你提交表格时(POST). 您可以使用以下代码段确保仅在提交表单时发送电子邮件:

if ($_SERVER[\'REQUEST_METHOD\'] == \'POST\')
{
    $first_name = $_SESSION[\'first_name\'];
    $last_name = $_SESSION[\'last_name\'];
    $phone_number = $_POST[\'phone_number\'];
    $message = $first_name . $last_name . $phone_number;
    wp_mail($myemail,"Email sent",$message);   
}

结束

相关推荐

Multi-site User Sessions

我有一个客户想要创建几个WordPress站点,并在顶部使用一个“站点切换器”,有点像前面的。网我知道在WP 3中,您可以在同一个安装上创建多个博客,但如何让登录到一个博客的用户登录到WordPress安装中的所有博客?这可能吗?