使Magento"继续购物"按钮重定向到最后添加到购物车产品的类别

use*_*245 1 continue magento

继续购物按钮在购物车页面上无法正常工作.

单击按钮后,转到主页.

我想去上一个类别页面.

Her*_*tin 5

您描述的按钮确实有效.返回主页可能是标准的Magento行为之一.

要回答你的问题,这是你可以做的.

请注意,如果产品存在于多个类别中,则会重定向到其附加的第一个类别.

这些代码已经在Magento 1.7.0.0上成功测试过.

PHP代码将是:

<?php
    $lastProductAddedToCartId = Mage::getSingleton('checkout/session')->getLastAddedProductId();
    if($lastProductAddedToCartId) {
        $productCategoryIdsArray = Mage::getModel('catalog/product')->load($lastProductAddedToCartId)->getCategoryIds();
        $continueShoppingCategoryUrl = Mage::getModel('catalog/category')->load($productCategoryIdsArray[0])->getUrl();
    }
?>
Run Code Online (Sandbox Code Playgroud)

HTML按钮代码将是:

<button type="button" title="Continue Shopping" class="button btn-continue" onclick="setLocation('<?php echo (isset($continueShoppingCategoryUrl)) ? $continueShoppingCategoryUrl : $this->getContinueShoppingUrl(); ?>')"><span><span>Continue Shopping</span></span></button>
Run Code Online (Sandbox Code Playgroud)

例如,如果您将PHP代码放在template/checkout/cart.phtml文件的开头而不是最佳实践,则上述代码可以正常工作.

最佳做法是:

1)你自己的助手,你可以在按钮的setLocation()PHP参数中调用,如下所示:

setLocation('<?php echo (Mage::helper('myhelper')->getContinueShoppingCategoryUrl()) ? Mage::helper('myhelper')->getContinueShoppingCategoryUrl() : $this->getContinueShoppingUrl(); ?>')
Run Code Online (Sandbox Code Playgroud)

2)或(不太好的IMO),重写Mage_Checkout_Block_Cart::getContinueShoppingUrl()方法.