【问题标题】:Display only enabled products in magento my wishlist仅在 magento 我的愿望清单中显示已启用的产品
【发布时间】:2015-01-13 11:02:30
【问题描述】:

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

【问题讨论】:

    标签: magento status product


    【解决方案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)
                 );
    

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

    【讨论】:

    • 是的,我只想在每个地方显示启用的产品。但是您提供的代码不起作用。当我使用它时,我得到了这个错误。调用未定义的方法 Mage_Wishlist_Model_Resource_Item_Collection::setStoreId() 如果我评论 setStoreId() 行而不是显示此错误调用未定义的方法 Mage_Wishlist_Model_Resource_Item_Collection::addAttributeToFilter()
    • 试试addFieldToFilter而不是addAttributeToFilter
    • 在“where子句”中仍然收到错误未知列“状态”
    • 恐怕我现在无法测试这个。我建议你检查这个方法 Mage_Wishlist_Model_Resource_Item_Collection:: _assignProducts,最后有一个循环加载产品,你可以在那里检查状态并跳过禁用的那些。希望对您有所帮助!
    猜你喜欢
    • 2018-08-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-11
    • 2019-12-01
    • 2016-09-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多