Php Magento捆绑包下拉列表需要显示缺货

Php Magento捆绑包下拉列表需要显示缺货,php,magento,drop-down-menu,bundle,Php,Magento,Drop Down Menu,Bundle,在捆绑产品页面中,我需要显示捆绑产品中的产品是否缺货。目前,该产品根本没有出现在下拉列表中。我查看了“select.phtml”文件,在开始时发现这行代码获取下拉列表的选项值: <?php $_selections = $_option->getSelections(); ?> 不幸的是,这并不能获取“缺货”项目。那么,有没有办法将这些项目包括在内 谢谢。希望这能帮助别人。搜索数小时后,终于在app/code/core/Mage/Bundle/Block/View/Ty

在捆绑产品页面中,我需要显示捆绑产品中的产品是否缺货。目前,该产品根本没有出现在下拉列表中。我查看了“select.phtml”文件,在开始时发现这行代码获取下拉列表的选项值:

<?php $_selections  = $_option->getSelections(); ?>

不幸的是,这并不能获取“缺货”项目。那么,有没有办法将这些项目包括在内


谢谢。

希望这能帮助别人。搜索数小时后,终于在app/code/core/Mage/Bundle/Block/View/Type/Bundle.php中找到了导致问题的行

你需要换一行

$this->_options = $optionCollection->appendSelections($selectionCollection, false,
            Mage::helper('catalog/product')->getSkipSaleableCheck()
        );
对此

$this->_options = $optionCollection->appendSelections($selectionCollection, false,
        true        
        //Mage::helper('catalog/product')->getSkipSaleableCheck()
        );

在Magento 1.8.1中,您可以在app/code/core/Mage/Bundle/Block/Catalog/Product/View/Type/Bundle.php中找到该文件


请注意,在核心中进行更改将使您的站点无法进行更新。将文件复制到本地目录。

基于SimCity的答案,而不是扩展/覆盖块,您可以执行以下操作。我已将此代码添加到bundle/catalog/product/view/type/bundle/options.phtml的顶部

// Get the current value of SkipSaleableCheck
<?php $skipSaleableCheck = Mage::helper('catalog/product')->getSkipSaleableCheck() ?>
// Overwrite this value with a 'true' value
<?php Mage::helper('catalog/product')->setSkipSaleableCheck(true) ?>
//获取SkipSalableCheck的当前值
//用“true”值覆盖此值
然后,可以使用以下代码在同一文件的底部重置此值:

<?php Mage::helper('catalog/product')->setSkipSaleableCheck($skipSaleableCheck) ?>

此方法提供相同的结果,而无需覆盖core Magento块