Дорисуем нужные поля в форму (она уже есть в корзине)
<form metod="post" action=""> ... <h2 class="h2">Ваши данные</h2> <div class="form_wrapp" style="text-align: center; padding: 0;"> <div class="input_wrapp"> <div class="input_hold"><label class="label">Имя:</label><input type="text" name="NAME" value="" required=""></div> <div class="input_hold"><label class="label">Телефон:</label><input type="text" name="PHONE" value="" required=""></div> <div class="input_hold"><label class="label">Email:</label><input type="email" name="EMAIL" value="" required=""></div> </div> </div> <input type="hidden" name="PRICE" id="PRICE_ORDER" value="<?=$arResult["allSum"]?>" /> <a href="javascript:void(0)" onclick="$('#oformit').trigger('click');" class="btn"><?=GetMessage("SALE_ORDER")?></a> <input type="submit" style="display:none;" name="oformit" id="oformit" value="oformit" /> ... </form> |
В POSTе будем ловить данные и создавать заказ
if($_POST["oformit"]){ echo "<pre>", print_r($_POST), "</pre>"; global $USER; if($USER->IsAuthorized()) { LocalRedirect("/personal/order/make/"); // если юзер авторизован отправим его на обычное оформление }else{ $arFilter = array('EMAIL' => $_POST["EMAIL"]); $rsUsers = CUser::GetList($by = 'ID', $order = 'ASC', $arFilter); // если юзер не авторизован проверим e-mail на существование в базе и предложим авторизоваться, если mail найден while ($arUser = $rsUsers->Fetch()) { $ID_USER=$arUser["ID"]; } if($ID_USER){ LocalRedirect("/personal/order/make/index.php?USER_ID=".$ID_USER); } else { $password_chars = array( "abcdefghijklnmopqrstuvwxyz", "ABCDEFGHIJKLNMOPQRSTUVWXYZ", // не нашли юзера с указанным mail, значит создаем его "0123456789", ); $newPassword = $newPasswordConfirm = randString(6, $password_chars); $arRegister = $USER->Register($_POST["EMAIL"], $_POST["NAME"], "", $newPassword, $newPassword, $_POST["EMAIL"]); // создадим заказ CModule::IncludeModule("sale"); $ORDER_ID = CSaleOrder::Add(array( "LID" => SITE_ID, "PERSON_TYPE_ID" => 2, "PAYED" => "N", "CANCELED" => "N", "STATUS_ID" => "N", "PRICE" => $_POST["PRICE"], "CURRENCY" => "RUB", "USER_ID" => $arRegister["ID"], "PAY_SYSTEM_ID" => 1, "PRICE_DELIVERY" => 0, "DELIVERY_ID" => 2, "DISCOUNT_VALUE" => 0, "TAX_VALUE" => 0.0, "USER_DESCRIPTION" => "Быстрый заказ" )); echo "<pre>", print_r($ORDER_ID), "</pre>"; // Связываем товары корзины с заказом CSaleBasket::OrderBasket($ORDER_ID); LocalRedirect("/personal/order/make/confirm.php?ID=".$ORDER_ID); } } } |