【问题标题】:Display Sale icon on special price products in magento. Only at homepage it is showing not in all pages在 magento 中的特价产品上显示销售图标。仅在主页上,并非在所有页面中都显示
【发布时间】:2016-08-08 19:43:09
【问题描述】:

在 magento 中的特价产品上显示促销图标。仅在主页上,并非在所有页面中都显示。

我编辑过的代码 app/design/frontend/default/template/catalog/product/list.html
从行号:95

<a href="<?php echo $_product->getProductUrl() ?>" title="<?php echo $this->stripTags($this->getImageLabel($_product, 'small_image'), null, true) ?>"` class="product-image"><img src="<?php echo $this->helper('catalog/image')->init($_product, 'small_image')->resize(135); ?>" width="135" height="135" alt="<?php echo $this->stripTags($this->getImageLabel($_product, 'small_image'), null, true) ?>" />


<?php 
    // Get the Special Price
    $specialprice = Mage::getModel('catalog/product')->load($_product->getId())->getSpecialPrice(); 
    // Get the Special Price FROM date
    $specialPriceFromDate = Mage::getModel('catalog/product')->load($_product->getId())->getSpecialFromDate();
    // Get the Special Price TO date
    $specialPriceToDate = Mage::getModel('catalog/product')->load($_product->getId())->getSpecialToDate();
    // Get Current date
    $today =  time();

    if ($specialprice):
        if($today >= strtotime( $specialPriceFromDate) && $today <= strtotime($specialPriceToDate) || $today >= strtotime( $specialPriceFromDate) && is_null($specialPriceToDate)):
?>
        <img src="../images/sale-icon.png" width="101" height="58" class="onsaleicon" />
<?php  
        endif;
    endif;
?>

</a>

此图标仅显示在主页中,而不显示在页面的所有产品列表中。如何在所有页面中显示?

请帮我解决这个问题

【问题讨论】:

  • 小心比较日期!这个假设永远不会发生:$today &lt;= strtotime($specialPriceToDate) 因为 time() 获取完整时间而 getSpecialToDate() 没有。您只需要像这样获取时间的日期:$today = date('Y-m-d'); 并因此将其转换为 unixtime

标签: php magento


【解决方案1】:

这是因为你这样插入图片:

<img src="../images/sale-icon.png" width="101" height="58" class="onsaleicon" />

图片应该放在skin/frontend/{interface}/{theme}/images/,你应该这样引用它:

<img src="<?php echo $this->getSkinUrl('images/sale-icon.png');?>" width="101" height="58" class="onsaleicon" />

[编辑]
有点离题,但很高兴知道:不要为您需要的每个产品属性使用Mage::getModel('catalog/product')-&gt;load($_product-&gt;getId())。它比您想象的更减慢页面速度。只需在后端编辑您需要的属性(特价、特价来源和特价到),将字段Used in product listing 设置为Yes,重新索引所有内容,您应该可以直接使用:

$specialprice = $_product->getSpecialPrice();
$specialPriceFromDate = $_product->getSpecialFromDate();
$specialPriceToDate = $_product->getSpecialToDate();

【讨论】:

  • 好的,我已经按照你说的做了。但这仅在主页产品中显示..不在类别页面之类的内部页面中..检查此 URL reboot.co.in/shop
  • 首先请确保您对主页上的产品和类别中的产品使用相同的模板。如果你这样做了,那么很可能你的一个 if 语句返回 false。
  • 我没有其他想法。就像我之前说过的,也许你的一个 if 语句返回 false。检查哪一个。这将是一个很好的起点。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-12-26
相关资源
最近更新 更多