Magento 1 如何隐藏所有产品原价仅显示特价?
Magento 1 隐藏原价仅显示特价的实现方案(无数据库全权限)
方法一:CSS全局隐藏(最简单)
不需要修改代码,直接在后台添加自定义CSS即可覆盖所有页面:
- 登录Magento后台,进入
系统 -> 设计 -> 配置,选中当前使用的店铺主题,点击HTML头部标签 - 在
自定义CSS或头部脚本区域添加以下代码:
/* 隐藏所有页面的原价元素 */ .old-price { display: none !important; } /* 确保特价正常显示(避免被其他样式影响) */ .special-price { display: block !important; font-size: 1.2em; /* 可选:调整特价字体大小突出显示 */ }
- 保存配置,清理Magento缓存和浏览器缓存,刷新前端页面即可生效。
方法二:修改价格模板文件(更彻底)
如果CSS隐藏有遗漏(比如某些特殊页面的原价结构不同),可以直接修改价格模板:
- 找到主题对应的价格模板文件,路径一般为
app/design/frontend/[你的主题包]/[主题名]/template/catalog/product/price.phtml - 打开文件,定位到包含
old-price的代码段(通常是判断显示原价的逻辑),直接注释或删除该段代码。示例代码如下:
<?php // 注释掉原价显示逻辑 /* if ($this->displayOldPrice()): ?> <p class="old-price"> <span class="price-label"><?php echo $this->__('Regular Price:') ?></span> <span class="price" id="old-price-<?php echo $_id ?><?php echo $this->getIdSuffix() ?>"> <?php echo $this->formatPrice($_regularPrice) ?> </span> </p> <?php endif; */ ?>
- 保存文件后清理缓存生效。建议先复制模板文件到本地主题目录再修改,避免主题升级时被覆盖。
方法三:布局XML移除原价模块(无模板修改)
如果不想碰模板文件,可以通过布局XML移除原价对应的模块:
- 进入主题的布局目录,找到
local.xml文件(如果没有则新建),路径为app/design/frontend/[你的主题包]/[主题名]/layout/local.xml - 添加以下布局代码,覆盖产品详情页、分类页、搜索结果页的原价模块:
<!-- 产品详情页移除原价 --> <catalog_product_view> <reference name="product.info.price"> <action method="unsetChild"><name>old_price</name></action> </reference> </catalog_product_view> <!-- 分类列表页移除原价 --> <catalog_category_default> <reference name="product_list"> <action method="unsetChild"><name>old_price</name></action> </reference> </catalog_category_default> <catalog_category_layered> <reference name="product_list"> <action method="unsetChild"><name>old_price</name></action> </reference> </catalog_category_layered> <!-- 搜索结果页移除原价 --> <catalogsearch_result_index> <reference name="search_result_list"> <action method="unsetChild"><name>old_price</name></action> </reference> </catalogsearch_result_index>
- 保存文件后清理缓存,前端页面的原价模块会被移除。
注意事项
- 操作前备份相关文件,避免出错后无法恢复。
- 确保清理全量缓存(包括Magento的页面缓存、区块缓存等)。
- 多店铺模式下,要确认配置是针对当前目标店铺设置的。
内容的提问来源于stack exchange,提问作者Gi S
相关产品推荐
相关产品推荐

