0

目前,当产品缺货时,“addtocart”块消失,但我想改变它,所以它仍然显示“addtocart”块,但不是实际的“添加到购物车”按钮,而是显示一些说明产品缺货的文字。

我已经设法让它在简单的产品上发挥作用

<?php echo $this->getChildHtml('addtocart') ?>

if ($_product->isSaleable())

部分,并编辑“添加到购物车”块,以便如果产品不可销售,它会显示所需的文本,而不是“添加到购物车”按钮。

我的问题是,对于可配置产品,无论是否显示“addtocart”块的代码都不是特别明显,我查看了 view.phtml 和其他文件的加载,并通过整个目录进行了 grep,但是我已经为简单产品更改的部分是唯一显示的部分(在 view.phtml 中)......

有任何想法吗?

4

2 回答 2

0

它是相同的代码 ( if ($_product->isSaleable())) 但在文件中/app/design/frontend/base/default/template/catalog/product/view/addtocart.phtml

于 2013-10-11T07:45:32.657 回答
0

事实证明它比我想象的要简单得多,在“view.phtml”文件中有两段代码:

<?php if ($_product->isSaleable() && $this->hasOptions()): ?>
     <?php echo $this->getChildChildHtml('container2', '', true, true) ?>
<?php endif; ?>

如果产品既是可配置产品 '$this->hasOptions()' 并且可销售,则它会抓取 'container2'。Container2 具有用于显示可配置选项、相关产品的块(但仅针对可配置产品,此代码上方的代码行显示简单产品的相关产品)和 addtocart 块。在这段代码下面我有:

<?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()”,则显示 addtocart 块。我必须添加以下代码,因为没有任何内容告诉服务器如果产品是可配置的该怎么做但不可出售:

<?php if (!$_product->isSaleable() && $this->hasOptions()){ ?>
     <?php echo $this->getChildHtml('addtocart') ?>
<?php } ?>

我对 php 还很陌生,所以这对很多人来说可能很明显,但我设法错过了一周左右的时间(幸运的是,这不是我的全职工作!),希望这对其他人有帮助!

于 2013-10-22T15:29:09.300 回答