Advertisement
Guest User

Untitled

a guest
Sep 18th, 2019
183
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.77 KB | None | 0 0
  1. <?php
  2. require_once $_SERVER['DOCUMENT_ROOT'] . "/wp-load.php";
  3.  
  4. use PHPMailer\PHPMailer\PHPMailer;
  5.  
  6. if (!empty($_GET['phone']) && !empty($_GET['name'])) {
  7. acceptOrder();
  8. } else {
  9.  
  10. sendJsonResponse([
  11. 'status' => 'failed',
  12. 'description' => 'Не переданы обязательные поля: Имя и Телефон'
  13. ]);
  14. }
  15.  
  16. function acceptOrder()
  17. {
  18. $dateTime = new DateTime('now');
  19. $dateTime = $dateTime->format('j.m, h:m');
  20.  
  21. $acceptingFields = [];
  22.  
  23. foreach (['phone', 'name', 'email'] as $fieldTitle) {
  24. if (!empty($_POST[$fieldTitle])) {
  25. $acceptingFields[$fieldTitle] =
  26. stripslashes(trim(htmlspecialchars($_POST[$fieldTitle])));
  27. }
  28. }
  29.  
  30. $orderMessage = "{$dateTime}\r\n";
  31.  
  32. foreach ($acceptingFields as $acceptingFieldKey => $acceptingField) {
  33. switch ($acceptingFieldKey) {
  34. case 'phone':
  35. $orderMessage .= "Телефон: {$acceptingField}\r\n";
  36. break;
  37. case 'name':
  38. $orderMessage .= "Имя: {$acceptingField}\r\n";
  39. break;
  40. case 'email':
  41. $orderMessage .= "Адрес электронной почты: {$acceptingField}\r\n";
  42. break;
  43. }
  44. }
  45.  
  46. wp_insert_post([
  47. 'post_type' => 'callback_requests',
  48. 'post_title' => "{$dateTime}, {$acceptingFields['name']}, {$acceptingFields['phone']}",
  49. 'post_content' => $orderMessage,
  50. 'post_status' => 'publish'
  51. ]);
  52.  
  53. $resultSending = sendJsonResponse(null, true);
  54. fastcgi_finish_request();
  55.  
  56. $clientEmailSubscribers = get_field('mail_subscribers', 'option');
  57.  
  58. if (empty($clientEmailSubscribers)) {
  59. return true;
  60. } else {
  61.  
  62. $clientEmailSubscribersFormatted = [];
  63.  
  64. foreach ($clientEmailSubscribers as $emailSubscriber):
  65. if (empty($emailSubscriber['address'])) {
  66. continue;
  67. }
  68. array_push($clientEmailSubscribersFormatted, $emailSubscriber['address']);
  69. endforeach;
  70.  
  71. if (empty($clientEmailSubscribersFormatted)) {
  72. return true;
  73. } else {
  74. return sendEmailNotificationAboutOrder($clientEmailSubscribersFormatted, $orderMessage);
  75. }
  76. }
  77. }
  78.  
  79. function sendEmailNotificationAboutOrder($clientEmails, $msg)
  80. {
  81. $msg = str_replace("\r\n", "<br>", $msg);
  82.  
  83. $phpMailer = new PHPMailer(true);
  84. $phpMailer->SMTPDebug = 0;
  85. $phpMailer->isSMTP();
  86. $phpMailer->CharSet = 'UTF-8';
  87. $phpMailer->Encoding = 'base64';
  88.  
  89. $phpMailer->Host = 'smtp.yandex.ru';
  90. $phpMailer->SMTPAuth = true;
  91. $phpMailer->Username = 'landauinc@yandex.ru';
  92. $phpMailer->Password = 'SoHard4u';
  93. $phpMailer->SMTPSecure = 'ssl';
  94. $phpMailer->Port = 465;
  95.  
  96. try {
  97. $phpMailer->setFrom('landauinc@yandex.ru', 'Landau inc');
  98. } catch (Exception $exception) {
  99. return true;
  100. }
  101.  
  102. $phpMailer->isHTML(1);
  103.  
  104. $phpMailer->Subject = "УЭК: Заявка с сайта";
  105. $phpMailer->Body = $msg;
  106.  
  107. try {
  108. foreach ($clientEmails as $subscriber) {
  109. $phpMailer->addAddress($subscriber);
  110. }
  111. } catch (Exception $exception) {
  112. return true;
  113. }
  114.  
  115.  
  116. try {
  117. $phpMailer->send();
  118. } catch (Exception $exception) {
  119. return true;
  120. }
  121.  
  122. return true;
  123. }
  124.  
  125. function sendJsonResponse(array $data = null, $returnSuccess = false)
  126. {
  127. header('Content-Type: json');
  128.  
  129. if ($returnSuccess === true) {
  130. $data = [
  131. 'status' => 'status',
  132. 'message' => 'Заявка успешно отправлена!'
  133. ];
  134. }
  135.  
  136. echo json_encode($data);
  137.  
  138. return true;
  139. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement