Guest User

Untitled

a guest
Nov 10th, 2017
138
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.93 KB | None | 0 0
  1. <?
  2. if (!CModule::IncludeModule('sale')
  3. || !CModule::IncludeModule('iblock')
  4. || !CModule::IncludeModule('catalog')
  5. || !CModule::IncludeModule('currency'))
  6. die();
  7.  
  8. global $USER, $APPLICATION;
  9. $work = true;
  10.  
  11. // проверки
  12. if (empty($_POST['user__name'])) {
  13. $data = array(
  14. 'title' => 'Вы не ввели ФИО',
  15. );
  16. $work = false;
  17. }
  18. if (empty($_POST['user__email'])) {
  19. $data = array(
  20. 'title' => 'Вы не ввели EMAIL',
  21. );
  22. $work = false;
  23. }
  24. if (empty($_POST['user__phone'])) {
  25. $data = array(
  26. 'title' => 'Вы не ввели Телефон',
  27. );
  28. $work = false;
  29. }
  30. if (empty($_POST['user__product'])) {
  31. $data = array(
  32. 'title' => 'Ошибка. Попробуйте позже',
  33. );
  34. $work = false;
  35. }
  36. if (empty($_POST['user__city'])) {
  37. $_POST['user__city'] = 2355;
  38. }
  39.  
  40. if ( $work ) {
  41.  
  42. $register_new_user = false;
  43. $send_letter = true;
  44.  
  45. // авторизация и регистрация пользователя
  46. if (!$USER->IsAuthorized()) {
  47.  
  48. $dbUser = CUser::GetList(($by = 'ID'), ($order = 'ASC'), array('=EMAIL' => $_POST['user__email'])); // ишем пользователя
  49. if ($dbUser->SelectedRowsCount() == 0) {
  50. $login = $_POST['user__email'];
  51. $register_new_user = true;
  52. } elseif ($dbUser->SelectedRowsCount() == 1) {
  53. $ar_user = $dbUser->Fetch();
  54. $registeredUserID = $ar_user['ID'];
  55. }
  56.  
  57. if ($register_new_user) {
  58. $use_captcha = COption::GetOptionString('main', 'captcha_registration', 'N');
  59. if ($use_captcha == 'Y')
  60. COption::SetOptionString('main', 'captcha_registration', 'N');
  61. $userPassword = randString(10);
  62. $userFIO = parseFIOString($_POST['user__name']);
  63. $newUser = $USER->Register($login, $userFIO[0], $userFIO[1], $userPassword, $userPassword, $login);
  64. if ($use_captcha == 'Y')
  65. COption::SetOptionString('main', 'captcha_registration', 'Y');
  66. if ($newUser['TYPE'] == 'ERROR') {
  67. die(getResultJsonArray(GetMessage('1CB_USER_REGISTER_FAIL'), 'N', $newUser['MESSAGE']));
  68. } else {
  69. $registeredUserID = $USER->GetID();
  70. if (!empty($_POST['user__phone']))
  71. $userUpd = $USER->Update($registeredUserID, array('PERSONAL_PHONE' => $_POST['user__phone']));
  72. $USER->Logout();
  73. }
  74. }
  75. } else {
  76. $registeredUserID = $USER->GetID();
  77. }
  78.  
  79. // Данные по умолчанию
  80. $deliveryId = 3; // доставка
  81. $paymentId = 2; // оплата
  82. $personType = 1; // тип плательшика
  83. $currency = "RUB"; // валюта
  84. $buyMode = "ONE";
  85.  
  86. $basketUserID = CSaleBasket::GetBasketUserID(); // id корзины пользователя
  87.  
  88. //данные заказа
  89. $newOrder = array(
  90. 'LID' => SITE_ID,
  91. 'PERSON_TYPE_ID' => $personType,
  92. 'PAYED' => 'N',
  93. 'CURRENCY' => $currency,
  94. 'USER_ID' => $registeredUserID
  95. );
  96.  
  97. if ($buyMode == 'ALL') {
  98.  
  99. $db_basket_items = CSaleBasket::GetList(
  100. array('SORT' => 'DESC'),
  101. array('FUSER_ID' => $basketUserID, 'LID' => SITE_ID, 'ORDER_ID' => 'NULL', 'DELAY' => 'N')
  102. );
  103.  
  104. $newOrder['COMMENTS'] = "Buy in one click from the basket";
  105. }
  106. else {
  107. //чистим корзину
  108. CSaleBasket::DeleteAll($basketUserID);
  109. //Добавляем товар в корзину
  110. $addID = Add2BasketByProductID($_POST['user__product'], 1);
  111.  
  112. //Получаем данные товара
  113. $db_basket_items = CSaleBasket::GetList(
  114. array('SORT' => 'DESC'),
  115. array('FUSER_ID' => $basketUserID, 'LID' => SITE_ID, 'ID' => $addID, 'ORDER_ID' => 'NULL', 'DELAY' => 'N')
  116. );
  117.  
  118. $newOrder['COMMENTS'] = "Buy in one click from the item card";
  119. }
  120.  
  121. $summ = 0;
  122. while ($ar_tmp = $db_basket_items->Fetch())
  123. $basket[] = $ar_tmp;
  124.  
  125. $arUserResult = array (
  126. 1 => htmlspecialchars($_POST['user__name']),
  127. 2 => htmlspecialchars($_POST['user__phone']),
  128. 3 => htmlspecialchars($_POST['user__email']),
  129. 4 => htmlspecialchars($_POST['user__city']),
  130. );
  131.  
  132. //добавляем заказ
  133. $arOrderDat = CSaleOrder::DoCalculateOrder(
  134. SITE_ID,
  135. $registeredUserID,
  136. $basket,
  137. $personType,
  138. $arUserResult,
  139. $deliveryId,
  140. $paymentId,
  141. array(),
  142. $arErrors,
  143. $arWarnings
  144. );
  145.  
  146. $arOrderDat['USER_ID'] = $newOrder['USER_ID'];
  147. $newOrderID = CSaleOrder::DoSaveOrder($arOrderDat, $newOrder, 0, $arResult["ERROR"]);
  148.  
  149. if ($newOrderID) {
  150. $data = array(
  151. 'title' => 'Заказ под номером '. $newOrderID. ' успешно создан.',
  152. //'message' => $registeredUserID,
  153. 'status' => 'ok',
  154. 'close' => false,
  155. 'hidden' => true
  156. );
  157. }
  158. else {
  159. $strError = '';
  160. if($ex = $APPLICATION->GetException())
  161. $strError = $ex->GetString();
  162.  
  163. $data = array(
  164. 'title' => $strError,
  165. );
  166. }
  167. }
  168. echo json_encode($data);
  169. ?>
Add Comment
Please, Sign In to add comment