我发现两个函数返回完全相同的值。
getAddUrl
中的 \app\code\local\Mage\Checkout\Helper\Cart.php
getAddToCartUrl
\app\code\local\Mage\Catalog\Block\Product\Abstract.php
这两者之间的区别是什么?因为我在我的块中添加了一个添加到购物车按钮。 我应该使用哪种功能?
答案 0 :(得分:1)
考虑以下示例
<?php if ($this->helper('wishlist')->isAllow()) : ?>
<li><a href="<?php echo $this->helper('wishlist')->getAddUrl($_product) ?>" class="link-wishlist"><?php echo $this->__('Add to Wishlist') ?></a></li>
<?php endif; ?>
<?php if($_cartUrl=$this->getAddToCartUrl($_product)): ?>
<li><span class="separator">|</span> <a href="<?php echo $_cartUrl ?>" class="link-cart"><?php echo $this->__('Add to Cart') ?></a></li>
<?php endif; ?>
getAddUrl可以获取与其关联的帮助程序的URL,例如:wishlist,compare等。 但getAddToCartUrl只会为您提供传递给它的产品的添加到购物车网址。
我希望它为你澄清事情
答案 1 :(得分:0)
你的块是否继承了Mage_Catalog_Block_Product_Abstract
类?如果是这样,你应该使用块的getAddToCartUrl方法。
否则你应该使用帮助器,没有简洁的方法来调用块方法而不创建块,在这种情况下是一个产品块。
答案 2 :(得分:0)
这两个功能之间的区别在于,如果产品具有所需选项,getAddToCartUrl
(Mage_Catalog_Block_Product_Abstract
)将返回产品视图页面网址。
getAddUrl
(Mage_Checkout_Helper_Cart
)将始终返回用于将商品添加到购物车的网址。