Stasya (27 Июль 2017 - 11:44) писал:
// Быстрый заказ function quickordercart(formSelector) { // Находим форму, которую отправляем на сервер, для добавления товара в корзину var formBlock = $($(formSelector).get(0)); // Получаем данные формы, которые будем отправлять на сервер var formData = formBlock.serializeArray(); // Сообщаем серверу, что мы пришли через ajax запрос formData.push({name: 'ajax_q', value: 1}); // Так же сообщим ему, что нужно сразу отобразить форму быстрого заказа formData.push({name: 'fast_order', value: 1}); // Аяксом добавляем товар в корзину и вызываем форму быстрого заказа товара $.ajax({ type : "POST", cache : false, url : formBlock.attr('action'), data : formData, success: function(data) { $('#order-stage-content').html(data);return; } }); setTimeout(function(){ $('#order-stage-content .warning, #order-stage-content .alignCenter, #order-stage-content .clear').hide(); $('#order-stage-content #quickform2').show(); }, 500); return false; } $(function() { $('.cartForm').submit(function() { quickordercart('#order-stage'); return(false); }); });и заменить его на
// Функция быстрого оформления заказа в корзине function startOrder(){ var globalOrder = $('#globalOrder'); var closeOrder = $('#closeOrder'); // объект кнопки отмены заказа var textCloseOrder = '#closeOrder'; // Если форма уже открыта то ничего не делаем. if (globalOrder.css('display') != 'none') { // Если блок с формой заказа не скрыт то выходим из функции return false; } //объект блока куда будет выводиться форма быстрого заказа var OrderAjaxBlock = $('#OrderAjaxBlock'); // объект кнопки "Заказать" var buttonStartOrder = $('#startOrder'); //объект блока с ajax анимацией var ajaxLoaderQuickOrder = $('.ajaxLoaderQuickOrder'); var urlQuickForm = '/cart/add'; // адрес страницы с формой // данные которые отарвятся на сервер чтобы получить только форму быстрого заказа без нижней части и верхней части сайта var quickFormData = [ {name: 'ajax_q', value: 1}, {name: 'fast_order', value: 1} ]; // Скрываем кнопку "Заказать" buttonStartOrder.hide(); // Отключаем возможность редактирования формы var cartTable = $('.cartTable'); // открываем общий, глобальный блок globalOrder.show(); $('html, body').delay(400).animate({scrollTop : jQuery('#globalOrder').offset().top - 200}, 800); // включаем gif анимацию загрузки ajaxLoaderQuickOrder.show('slow'); $.ajax({ type: "POST", cache: false, url: urlQuickForm, data: quickFormData, success: function(data) { OrderAjaxBlock.html($(data).find('#quickform2').wrap('div').html()); // скрываем блок с анимацией ajaxLoaderQuickOrder.hide(); // удалим обработчик события на кнопке отмена closeOrder.css('display','block'); cartTable.toggleClass('disable'); q = cartTable.find('.cartqty'); if(q.prop('disabled') == true){q.prop('disabled',false)}else{q.prop('disabled',true)} $('.cart-info').on('click', textCloseOrder, function() { //Скрываем блок оформления заказа ajaxLoaderQuickOrder.hide('fast'); OrderAjaxBlock.hide('fast'); globalOrder.hide('fast'); closeOrder.css('display','none'); // Скрываем кнопку "Отменить" buttonStartOrder.css('display','block'); // Возврощаем кнопку "Заказать" // Включаем возможность редактирования формы cartTable.toggleClass('disable'); if(q.prop('disabled') == true){q.prop('disabled',false)}else{q.prop('disabled',true)} return false; }); $.fancybox({ content : OrderAjaxBlock, // При изменении размера окна изменяем размер окна оформления заказа onUpdate : function(){ var w = $(window).width()*0.8; if(w < 800) { // Автоматический ресайз внутреннего блока fancybox-а $('.fancybox-inner').css('width', 'auto'); // Изменяем размер fancybox окна $('.fancybox-wrap').css({'width': w + 'px'}); } return false; } }); } }); return false; } $(document).ready(function(){ $('.orderButton').click(function(){ startOrder(); return false; }); }) </script>Затем в шаблоне Корзина найдите код
<div class="right"><a class="button" title="Перейти к оформлению заказа" onclick="$('.cartForm').append('<input type=\'hidden\' name=\'next_step\' value=\'1\' />').submit();return false;">Оформить заказ</a> </div>и замените его на
<div class="right"><a class="button orderButton" title="Перейти к оформлению заказа">Оформить заказ</a> </div>В шаблоне Быстрый заказ найдите блок
<div class="clear"></div> <div id="quickform2" style="display: none;">замените его на
<div class="clear"></div> <div> <div id="quickform2" style="display: none;">И блок
<div style="margin: -27px 19px 0; width: 83%; float: left;"> <input id="pers_confirm" type="checkbox" name="pers_confirm" checked="checked" class="required"><label><span style="color:red">Нажимая кнопку </span> Оформить заказ, Я подтверждаю свою дееспособность, даю согласие на обработку <u><a href="http://design.king-store.ru/privacy.pdf?3413" target="_blank">своих персональных данных</u> </a> , Я принимаю условия <u><a href="http://design.king-store.ru/terms.pdf?3870" target="_blank">пользовательского соглашения.</a> </label> </div> </div> </form> </div>замените на
<div style="margin: -27px 19px 0; width: 83%; float: left;"> <input id="pers_confirm" type="checkbox" name="pers_confirm" checked="checked" class="required"><label><span style="color:red">Нажимая кнопку </span> Оформить заказ, Я подтверждаю свою дееспособность, даю согласие на обработку <u><a href="http://design.king-store.ru/privacy.pdf?3413" target="_blank">своих персональных данных</u> </a> , Я принимаю условия <u><a href="http://design.king-store.ru/terms.pdf?3870" target="_blank">пользовательского соглашения.</a> </label> </div> </div> </form> </div> </div>
Добрый день!
Что-то не так. Сделал, перестало работать вообще!
На странице возникла JS ошибка:
Uncaught ReferenceError: quickorder is not defined на строке: 2542.
Адрес файла: http://king-store.ru...mod_id=53876295
Как исправить ошибку?
1. Возможно, Вы недавно вносили изменения на сайт, и кэш браузера ещё не обновился. Для решения проблемы можно немного подождать или просто обновить страницу с помощью сочетания клавиш: CTRL+SHIFT+R или CTRL+F5
2. Возможно, Вы добавили сторонний скрипт на сайт, который не верно работает. В этом случае, в разделе «Сайт» > «Редактор шаблонов».
4. Возможно, Вы ошиблись в синтаксисе javascript файла. В этом случае откатите последние добавленные изменение в js файлах в разделе «Редактор шаблонов».
5. Если необходимо помочь в решении данной ошибки, напишите вопрос или посмотрите готовые решения похожих проблем в разделе "Ошибки" на нашем форуме.
Добрый вечер! Откатил - без указанных выше изменений при нажатии на кнопку "оформить заказ" в корзине - выжает вот это:
ошибка - Не указан идентификатор товарной модификации товара, для добавления в корзину. Он передаётся в переменной form[goods_mod_id]
Клиенты бросают корзины и не могут оформить заказ!!!
С Уважением,
Николай