仅在 magento 我的愿望清单中显示已启用的产品

Display only enabled products in magento my wishlist

当用户登录并单击我的心愿单时 link 它会显示产品。但它也显示禁用产品。我只想在愿望清单中显示已启用的产品。 任何人都可以建议我如何更改代码,以便它只在我的愿望清单区域显示已启用的产品。

您可能需要扩展此 class 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)
             );

请注意,这会在您每次加载心愿单项目集合时排除禁用的产品,不仅从心愿单页面,而且还可能从您展示它的任何地方,我认为这就是您想要的。