Переход в Корзину после добавления товара
Как сделать так, чтобы по нажатию на кнопку КУПИТЬ человеку выводилась страница Корзина.
Подскажите в каких файлах и в каких местах что должно меняться? Опишите принцип, потому что сами разобраться не смогли.
Подскажите в каких файлах и в каких местах что должно меняться? Опишите принцип, потому что сами разобраться не смогли.
5 ответов
1. Найти JavaScript-обработчик нажатия на кнопку "В корзину" — это делается средствами разработчика в браузере (или поиском наугад в файле %theme_name%.shop.js).
2. Изменить логику обработчика так, чтобы выполнялось перенаправление на страницу корзины.
<form class="addtocart" method="post" action="/cart/add/">
Кажется, никакого JS не используется. Что делать?
$("#main").on('submit', 'form.addtocart', function () {
var f = $(this);
if (f.data('url')) {
var d = $('#dialog');
var c = d.find('.cart');
c.addClass('product').load(f.data('url'), function () {
d.show();
if($('#dialog-image-product').length) {
c.parent().prepend(c.find('h4'));
c.css('margin-top', d.find('h4').innerHeight());
}
if ((c.height() > c.find('form').height())) {
c.css('bottom', 'auto');
} else {
c.css('bottom', '15%');
}
});
return false;
}
$.post(f.attr('action') + (sumbolrub ? '?html=1' : ''), f.serialize(), function (response) {
if (response.status == 'ok') {
var cart_total = $(".cart-total");
if ( $(window).scrollTop()>=35 ) {
cart_total.closest('#cart').addClass( "fixed" );
}
cart_total.closest('#cart').removeClass('empty');
if ($("table.cart").length) {
$(".content").parent().load(location.href, function () {
cart_total.html(response.data.total);
$(window).unbind('load.jcarousel, resize.jcarousel');
$('ul[class^="products-slider-"]').jcarousel({
scroll: 1,
buttonNextHTML: '<div><i class="icon-caret-right"></i></div>',
buttonPrevHTML: '<div><i class="icon-caret-left"></i></div>',
reloadCallback: function(carousel){ carousel.scroll(1, false); carousel.list.css('left', 0); }
});
});
} else {
var origin = f.closest('li');
var block = $('<div></div>').append(origin.html());
block.css({
'z-index': 10,
top: origin.offset().top,
left: origin.offset().left,
width: origin.width()+'px',
height: origin.height()+'px',
position: 'absolute',
overflow: 'hidden'
}).insertAfter('#main').animate({//code origin => .content
top: cart_total.offset().top,
left: cart_total.offset().left,
width: 0,
height: 0,
opacity: 0.5
}, 500, function() {
$(this).remove();
cart_total.html(response.data.total);
});
var $scd = f.closest('li').find('.soaring-cart-data').data();
if($scd){
var $item = $('#soaring-cart li[data-id="'+response.data.item_id+'"]');
var cnt = parseInt(f.find('input[name="quantity"]').val()) || 1;
if($item.length){
var $qty = $item.find('input.soaring-cart-qty');
cnt += parseInt($qty.val());
$qty.val(cnt);
$item.find('.price').html(currency_format($scd.price*cnt, !sumbolrub, $.comfortbuy.currency));//*
}else{
$.extend($scd, { id: response.data.item_id, cnt: cnt, price: ''+currency_format($scd.price*cnt, !sumbolrub, $.comfortbuy.currency) });//*
$('#soaring-cart ul').prepend(newItem($scd));
setSoaringHeight();
}
$('#soaring-cart').scrollTop( $('#soaring-cart li[data-id="'+response.data.item_id+'"]').position().top );
}
}
if (response.data.error) {
alert(response.data.error);
}
} else if (response.status == 'fail') {
alert(response.errors);
}
}, "json");
return false;
});
<form class="addtocart" method="post" action="/cart/add/">
Кажется, никакого JS не используется. Что делать?
В файле product.js где нибудь после строчки
$("#cart-form").submit(function() {
добавить
window.location = "http://Ваш домен/cart/"
Естественно "Ваш домен" заменить на адрес вашего сайта
и будет после нажатия "В корзину" открываться корзина