Добрый день. Нашел на просторах интернета решение для реализации "купить в 1 клик " для битрикс. Но не совсем рабочее.Сам разобраться уже долго не могу. Понимаю что проблема в скрипте jquery.
Итак есть в корне сайта папка one_click_order , в ней два файла.
index.php - собственно форма вызываемого окна.
Код
<?
require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_before.php");
if(CModule::IncludeModule("catalog")){
$ID = intval($_GET['product_id']);
$ar_res = CCatalogProduct::GetByIDEx($ID);
if (is_array($ar_res)){
global $USER;
$rsUser = CUser::GetByID($USER->GetID());
$arUser = $rsUser->Fetch();
?>
<a href="<?=$ar_res['DETAIL_PAGE_URL']?>"><?=$ar_res['NAME']?></a>
<fo rm id="one_click_form" name="one_click_form" action="/one_click_order/handler.php" method="POST">
<input type="hidden" name="product_id" value="<?= $ID ?>">
ФИО: <input type="text" name="fio" value="<?=$USER->GetFullName()?>" ><br/>
Телефон: <input type="text" name="phone" value="<?=$arUser['PERSONAL_PHONE']?>"><br/>
E-mail: <input type="text" name="email" value="<?=$USER->GetEmail()?>"><br/>
Комментарий к заказу: <textarea class="inputtext" name="message" value="""></textarea><br/>
<input type="submit" value="Отправить">
</form>
<?
}
}
и файл handler.php - в нем происходит формирование заказа в системе сайта.
Код
<?
require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_before.php");
$is_error=true;
$error_text = '';
if (isset($_POST['product_id']) && isset($_POST['fio']) && isset($_POST['phone']) && isset($_POST['email']) ){
if(CModule::IncludeModule("catalog") && CModule::IncludeModule("sale")){
$product_id = intval($_POST['product_id']);
$ar_res = CCatalogProduct::GetByIDEx($product_id);
if ($ar_res){
$is_error=false;
global $USER;
$user_id = $USER->GetID();
if(!$user_id )
{
//пароль для нового пользователя
$pass = rand(100000, 999999);
//группы, в которых он будет состоять
$groups = array(3,4,5);
$user_id = $USER->Add(array(
"NAME" => $_POST['fio'],
"EMAIL" => $_POST['email'],
"LOGIN" => $_POST['email'],
"PERSONAL_PHONE" => $_POST['phone'],
"LID" => "ru",
"ACTIVE" => "Y",
"GROUP_ID" => $groups,
"PASSWORD" => $pass,
"CONFIRM_PASSWORD" => $pass,
));
$USER->Authorize($user_id);
$error_text = $USER->LAST_ERROR;
}
if ($user_id > 0){
//PAY_SYSTEM_ID, PRICE_DELIVERY, DELIVERY_ID, DISCOUNT_VALUE, TAX_VALUE можно не указывать
$arFields = array(
"LID" => SITE_ID,
"PERSON_TYPE_ID" => 1,
//Вместо ### укажите конкретный ID цены
"PRICE" => $ar_res['PRICES'][id#1]['PRICE'],
"PAYED" => "N",
"CANCELED" => "N",
"STATUS_ID" => "N",
"CURRENCY" => "RUB",
"USER_ID" => $user_id,
"USER_DESCRIPTION" => $_POST['message']
);
$ORDER_ID = IntVal(CSaleOrder::Add($arFields));
if ($ORDER_ID > 0){
$arProps = array();
$arFields = array(
"PRODUCT_ID" => $ar_res['ID'],
"PRICE" => $ar_res['PRICES'][8]['PRICE'],
"CURRENCY" => "RUB",
"WEIGHT" => $ar_res['PRODUCT']['WEIGHT'],
"QUANTITY" => 1,
"DELAY" => "N",
"LID" => $ar_res['LID'],
"CAN_BUY" => "Y",
"ORDER_ID" => $ORDER_ID,
"NAME" => $ar_res['NAME'],
"MODULE" => "catalog",
"NOTES" => "",
"DETAIL_PAGE_URL" => $ar_res['DETAIL_PAGE_URL'],
);
$add = CSaleBasket::Add($arFields);
if (intval($add) > 0)
echo 'ok';
}
}
}
}
}
if ($error_text != '')
echo str_replace('<br>', "\n", $error_text);
else if ($is_error){
echo 'ошибка';
}
кнопка "купить в 1 клик имеет вид:
Код
$too = $arResult['ID'];
<a id="one_click_buy" href="/one_click_order?product_id=<?php echo $too?>">Купить в один клик</a>
скрипт jquery:Код:
<script>
$(document).ready(function () {
$("#one_click_buy").click(function(){
$( "#modal_window" ).load( $(this).attr("href"), function() {
order_handler();
});
});
function order_handler()
{
$("#one_click_form").submit(function(){
if (
$('[name="fio"]').val() == '' ||
$('[name="phone"]').val() == '' ||
$('[name="email"]').val() == '' ||
){
alert('Заполните поля со звездочками.');
}
else{
var str = $(this).serialize();
$.post($(this).attr('action'), str, function (data) {
if (data == 'ok'){
alert('Заказ успешно оформлен');
window.location.href='';
}else{
alert(data);
}
});
}
});
});
</script>
библиотеки jQuery подключены и работают. проблема в самом коде. не пойму зачем в коде есть ссылка на #modal_window когда такой элемент нигде больше не встречается. Буду благодарен за любую помощь.