public function addRequestAction(Request $request) { if (($email = $request->post('email')) === null || ($name = $request->post('name')) === null || ($phone = $request->post('phone')) === null) { return $this->errorJSONResponse('Не определён один из параметров'); } if ((new EmailValidator())->validate($email) === false) { return $this->errorJSONResponse('Не верный email. Email должен быть вида example@example.com'); } if ((new PhoneValidator())->validate($phone) === false) { return $this->errorJSONResponse('Не верный телефон. Email должен быть вида +7(123)456-78-90'); } if ((new StringValidator())->validate($name) === false) { return $this->errorJSONResponse('Имя не может быть пустым или больше 50 символов'); } $subscriber = Subscribers::getOne(['email' => $email]); if ($subscriber === false) { $subscriber = new Subscribers(); $subscriber->email = $email; } $subscriber->name = $name; $subscriber->phone = $phone; $subscriber->source = isset($_GET['utm_source']) ? $_GET['utm_source'] : (isset($_COOKIE['utm_source']) ? $_COOKIE['utm_source'] : ''); $mailer = new Mailer(); $mailer->setFrom('*****@*****.**', 'Поддержка Amethyst Web Studio'); $mailer->addAddress($subscriber->email, $subscriber->name); $mailer->Subject = 'Спасибо за заявку.'; $mailer->Body = '<html> <head> <meta charset="utf-8"> </head> <body> <h1>Здравствуйте, уважаемый, ' . $subscriber->name . '!</h1> <p>Спасибо за оставленную заявку на нашем сайте. В ближайшее время с Вами свяжется наш представитель, и вы сможете обсудить с ним все детали касательно разработки Вашего сайта.</p> <p>Спасибо за проявленный интерес к нашей Веб студии</p> </br></br> <p>С наилучшими пожеланиями технический директор Amethyst Web Studio, Лещёв Никита.</p> <p>Если вдруг сотрудник с Вами не связался, напишите лично мне: <a href="mailto:nikita@amethyst-ws.ru">nikita@amethyst-ws.ru</a></p> </body> </html>'; $mailer->AltBody = 'Здравствуйте, уважаемый, ' . $subscriber->name . '! Спасибо за оставленную заявку на нашем сайте. В ближайшее время с Вами свяжется наш представитель, и вы сможете обсудить с ним все детали касательно разработки Вашего сайта. Спасибо за проявленный интерес к нашей Веб студии. С наилучшими пожеланиями технический директор Amethyst Web Studio, Лещёв Никита. Если вдруг сотрудник с Вами не связался, напишите лично мне: nikita@amethyst-ws.ru'; $clientMailSent = $mailer->send(); if ($clientMailSent && $subscriber->save()) { $ourMailer = new Mailer(); $ourMailer->setFrom('*****@*****.**', 'Поддержка Amethyst Web Studio'); $ourMailer->addAddress('*****@*****.**'); $ourMailer->addAddress('*****@*****.**'); $ourMailer->Subject = 'Новый лид с сайта.'; $ourMailer->Body = '<html> <head> <meta charset="utf-8"> </head> <body> <p>У нас новая заявка:</p> <p>Имя: ' . $subscriber->name . '</p> <p>Телефон: <a href="tel:' . $subscriber->phone . '">' . $subscriber->phone . '</a></p> <p>Почта: <a href="mailto: ' . $subscriber->email . '">' . $subscriber->email . '</a></p> </body> </html>'; $ourMailer->AltBody = ''; $ourMailer->send(); return $this->successJSONResponse('Заявка успешно оформлена! В ближайшее время с Вами свяжется наш менеджер!'); } else { return $this->successJSONResponse('Не удалось оформить заявку! Попробуйте позже.'); } }