仅在magento my wishlist中显示已启用的产品

时间:2015-01-13 11:02:31

标签: magento status product

当用户登录并点击我的心愿单链接时,它会显示产品。但它也显示了残疾产品。我想只在心愿单中显示已启用的产品。 任何人都可以建议我如何在代码中进行更改,以便它只显示我的心愿单区域中已启用的产品。

1 个答案:

答案 0 :(得分:1)

您可能需要扩展此类Mage_Wishlist_Model_Wishlist并通过按状态添加过滤器来覆盖方法getItemCollection。这样的事情(未经测试,只是添加了最后一个方法调用):

$this->_itemCollection =  Mage::getResourceModel('wishlist/item_collection')
             ->setStoreId($this->getStore()->getId())
             ->addWishlistFilter($this)
             ->addAttributeToFilter(
                 'status',
                  array('eq' => Mage_Catalog_Model_Product_Status::STATUS_ENABLED)
             );

请注意,这会在每次加载愿望清单项目时排除已停用的产品,不仅是来自愿望清单页面,还有可能放在您显示它的任何地方,我认为这就是您想要的。