Купить в 1 клик Bitrix Jquery
Добрый день. Нашел на просторах интернета решение для реализации "купить в 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 когда такой элемент нигде больше не встречается. Буду благодарен за любую помощь. |
Часовой пояс GMT +3, время: 20:09. |