Дорисуем нужные поля в форму (она уже есть в корзине)
<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);
}
}
}
|