@Ingword
Падаван.

Отправка на почту данных в 2 этапа, как реализовать?

Привет!

Стоит задача реализовать такой функционал: на главной странице пользователь вводит данные в форму, после чего его перекидывает на страницу с допродажей какого-то товара. По клику на кнопку "Добавить к заказу" в письме, которое отправляется менеджеру, должен добавиться пункт, что человек добавил к заказу ещё кое-что.

Имеем обычную форму:
<form method="post">
				<input type="text" name="name" required placeholder="Введите ваше имя">
				<input type="text" name="phone" class="phone-mask" required placeholder="Введите ваш телефон">
				<input type="submit" class="button" value="Отправить">
				<p class="success">Ваша заявка успешно отправлена!</p>
			</form>


PHP-код на отправку письма (урезал строчки с адресом почты):
$message = "<table width='450' border='0' cellspacing='0' cellpadding='5' style='font-family: Arial, Helvetica, sans-serif; font-size: 14px; color: #000;'>
  <tr>
    <td colspan='2' style='border: 2px solid #eee; background: #eee; font-weight: 700; font-size: 16px;'>".$subject."</td>
  </tr>";

if (isset($_POST['name']) && !empty($_POST['name'])) {$message .= "<tr>
    <td width='154' style='border: 2px solid #eee; border-top: none; font-size: 14px;'>Имя</td>
    <td width='276' style='border: 2px solid #eee; border-top: none; border-left: none; font-size: 14px;'>".$_POST["name"]."</td>
  </tr>";}

if (isset($_POST['phone']) && !empty($_POST['phone'])) {$message .= "<tr>
    <td style='border: 2px solid #eee; border-top: none; font-size: 14px;'>Телефон</td>
    <td style='border: 2px solid #eee; border-top: none; border-left: none; font-size: 14px;'>".$_POST["phone"]."</td>
  </tr>";}

$message .= "</table>";

mail($email, $subject, $message, $headers);


И JS-код:
$("form").submit(function() {
        var th = $(this);
        $.ajax({
          type: "POST",
          url: "send.php",
          data: th.serialize()
        }).done(function() {
          $('.button').css('display', 'none');
          $('.success').css('display', 'block');
        });
        return false;
      });


На данный момент логика такая: клиент отправляет форму, без перезагрузки страницы ему выводится сообщение, что он молодец и заказ отправлен.

Нужно: после отправки формы отправить клиента на другую страницу с информацией о доп. товарах с двумя кнопками: добавить и отказаться.

При клике на кнопку "добавить" в отправляемое письмо нужно добавить строчку о том, что клиент хочет доп. товар.

Проблемы:
1. Письмо отправляется сразу после отправки формы, т.е. инфу про доп. товар нужно отправлять вторым письмом, что не подходит в данном случае.
2. Если ждать, пока клиент выберет добавлять или не добавлять товар и только потом отправлять письмо - можно потерять кучу клиентов, потому что клиент может просто закрыть вкладку, не выбрав ничего.

Варианты решения:
1. Использовать какую-то БД для фиксирования заказов и при добавления доп. товара обновлять информацию в БД, после чего использовать какой-то скрипт, который будет обращаться к БД, собирать инфу и отправлять на почту — не подходит, сложно для меня в реализации, нужен простой и элегантный способ решения задачи.
  • Вопрос задан
  • 165 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы