首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >可配置产品的“外接程序车”在哪里?

问可配置产品的“外接程序车”在哪里?
EN

Stack Overflow用户
提问于 2013-10-10 13:21:46
回答 2查看 249关注 0票数 0

目前,当一个产品缺货时,'addtocart‘块消失了,但是我想更改它,因此它仍然显示'addtocart’块,但是它显示的不是实际的'add to筐‘按钮,而是显示一些文本来解释该产品是缺货的。

我已经设法使它在简单的产品上工作,通过

代码语言:javascript
复制
<?php echo $this->getChildHtml('addtocart') ?>

走出

代码语言:javascript
复制
if ($_product->isSaleable())

部分,并编辑“addtocart”块,以便如果产品无法销售,则显示所需的文本,而不是“添加到篮”按钮。

我的问题是,对于可配置的产品,无论什么代码指示是否显示‘外接程序’块并不特别明显,我已经查看了所有的view.phtml和加载其他文件,并且grep已经遍历了整个目录,但是我已经为简单产品修改的部分是唯一出现在(在view.phtml中)的部分。

有什么想法吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-10-22 15:29:09

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

代码语言:javascript
复制
<?php if ($_product->isSaleable() && $this->hasOptions()): ?>
     <?php echo $this->getChildChildHtml('container2', '', true, true) ?>
<?php endif; ?>

如果产品是可配置的产品'$this->hasOptions()‘并且是可销售的,那么它就会抢占'container2’。Container2具有用于显示可配置选项、相关产品(但仅用于可配置产品的代码行)和外接程序块(此代码行显示简单产品的相关产品)。下面是我的代码:

代码语言:javascript
复制
<?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()‘),则显示外接程序块。我必须添加以下代码,因为没有什么可以告诉服务器,如果产品是可配置的,但不能销售的话,应该做什么:

代码语言:javascript
复制
<?php if (!$_product->isSaleable() && $this->hasOptions()){ ?>
     <?php echo $this->getChildHtml('addtocart') ?>
<?php } ?>

我对php相当陌生,所以这对很多人来说可能是显而易见的,但我成功地错过了一周左右的时间(幸运的是这不是我的全职工作!),希望这能帮助到其他人!

票数 0
EN

Stack Overflow用户

发布于 2013-10-11 07:45:32

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19296956

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档