我正在使用Magento购物者主题(http://shopper.queldorei.com/)。
当我将商品添加到我的商店购物车时,它会增加多个元素
<div class="cart-top-title">
<a href="https://droppinstudio.dk/horsepony/index.php/checkout/cart/" class="clearfix">
<span class="icon"></span>Cart</a></div>
我发现这是jQuery犯了错误:
function setLocationAjax(url, id)
{
...
if (data.status != 'ERROR' && $('.cart-top-container').length) {
$('.cart-top-container').replaceWith(data.cart_top);
}
...
}
有没有人知道如何解决这个问题?
答案 0 :(得分:2)
您应该查看CartController,并更改响应变量(data.cart_top)。
CartController的位置取决于主题使用的模块。核心CartController位于app / code / core / Mage / Checkout / controllers / CartController.php。
希望这有帮助。
答案 1 :(得分:1)
谢谢你,Erwin,that helped me figure out what is wrong。
CartController位于app / code / local / Excellence / Ajax / controllers /中,实际上名为IndexController.php。
第52-54行设置data.cart_top响应:
$sidebar_header = $this->getLayout()->getBlock('cart_top')->toHtml();
Mage::register('referrer_url', $this->_getRefererUrl());
$response['cart_top'] = $sidebar_header;
修复可能是更改 cart_top 块的设计方式,并从cart_top.phtml中删除'cart-top-title'并将其放入自己的文件中并包含它在header.phtml。
结果是在ajaxcart.js(函数setLocationAjax)的第85行发生了实际替换。
对我来说,快速解决方法是使用jQuery删除div,如下所示:
if (data.status != 'ERROR' && $('.cart-top-container').length) {
$('.cart-top-title').remove();
$('.cart-top-container').replaceWith(data.cart_top);
}
js file here:skin / frontend / default / shopper / js / ajaxcart / ajaxcart.js
cart_top.phtml:app / design / frontend / default / shopper / template / checkout / cart / cart-top.phtml
header.phtml这里:app / design / frontend / default / shopper / template / page / html / header.phtml