目前,当一个产品缺货时,'addtocart‘块消失了,但是我想更改它,因此它仍然显示'addtocart’块,但是它显示的不是实际的'add to筐‘按钮,而是显示一些文本来解释该产品是缺货的。
我已经设法使它在简单的产品上工作,通过
<?php echo $this->getChildHtml('addtocart') ?>走出
if ($_product->isSaleable())部分,并编辑“addtocart”块,以便如果产品无法销售,则显示所需的文本,而不是“添加到篮”按钮。
我的问题是,对于可配置的产品,无论什么代码指示是否显示‘外接程序’块并不特别明显,我已经查看了所有的view.phtml和加载其他文件,并且grep已经遍历了整个目录,但是我已经为简单产品修改的部分是唯一出现在(在view.phtml中)的部分。
有什么想法吗?
发布于 2013-10-22 15:29:09
事实证明,这比我想象的要简单得多,在“view.phtml”文件中有两部分代码:
<?php if ($_product->isSaleable() && $this->hasOptions()): ?>
<?php echo $this->getChildChildHtml('container2', '', true, true) ?>
<?php endif; ?>如果产品是可配置的产品'$this->hasOptions()‘并且是可销售的,那么它就会抢占'container2’。Container2具有用于显示可配置选项、相关产品(但仅用于可配置产品的代码行)和外接程序块(此代码行显示简单产品的相关产品)。下面是我的代码:
<?php if (!$this->hasOptions()): ?>
<div class="add-to-box">
<?php echo $this->getChildHtml('addtocart') ?>
<?php if ($_product->isSaleable()): ?>
<?php if ($this->helper('wishlist')->isAllow() || $_compareUrl = $this->helper('catalog/product_compare')->getAddUrl($_product)): ?>
<?php endif; ?>
<?php endif; ?>如果产品是一个简单的产品'if (!$this->hasOptions()‘),则显示外接程序块。我必须添加以下代码,因为没有什么可以告诉服务器,如果产品是可配置的,但不能销售的话,应该做什么:
<?php if (!$_product->isSaleable() && $this->hasOptions()){ ?>
<?php echo $this->getChildHtml('addtocart') ?>
<?php } ?>我对php相当陌生,所以这对很多人来说可能是显而易见的,但我成功地错过了一周左右的时间(幸运的是这不是我的全职工作!),希望这能帮助到其他人!
发布于 2013-10-11 07:45:32
它是相同的代码(if ($_product->isSaleable())),但在文件/app/design/frontend/base/default/template/catalog/product/view/addtocart.phtml中
https://stackoverflow.com/questions/19296956
复制相似问题