wp mail отправляет два электронных письма при использовании после получения данных сеанса


Я использую функцию wp_mail для отправки электронных писем в 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 для отправки через SMTP-серверы Gmail. Когда я отключаю это, электронные письма вообще не отправляются.

По какой-то причине я получаю два электронных письма. У одного есть информация о ПОСТЕ И СЕАНСЕ, а у другого есть только СЕАНС информация.

Мы будем очень признательны за любую помощь! Заранее благодарю,

Джейми

Я использую WordPress 3.3

Author: Jamie, 2012-01-07

1 answers

Похоже, что у вас нет кода, завернутого в инструкцию 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);   
}
 2
Author: stealthyninja, 2012-01-07 12:36:04