You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

OpenCart 3自定义产品标签无法前端展示,求OCMOD实现方案

OpenCart 3 实现自定义产品标签前端展示(OCMOD 方案)

假设你新增的产品数据库字段名为 product_tag,以下是完整的OCMOD修改代码,可直接保存为.xml文件后在后台扩展管理中上传启用:

<?xml version="1.0" encoding="utf-8"?>
<modification>
    <name>Custom Product Tag Display</name>
    <version>1.0</version>
    <author>Custom</author>
    <code>custom_product_tag</code>

    <!-- 1. 修改产品模型,查询时带出自定义字段 -->
    <file path="catalog/model/catalog/product.php">
        <operation>
            <search><![CDATA[SELECT p.product_id, p.price, p.special, p.image, p.date_added]]></search>
            <add position="replace"><![CDATA[SELECT p.product_id, p.price, p.special, p.image, p.date_added, p.product_tag]]></add>
        </operation>
        <!-- 补充适配单个产品查询场景 -->
        <operation>
            <search><![CDATA[SELECT p.product_id, p.price, p.special, p.image]]></search>
            <add position="replace"><![CDATA[SELECT p.product_id, p.price, p.special, p.image, p.product_tag]]></add>
        </operation>
    </file>

    <!-- 2. 给Featured模块控制器传递字段数据到模板 -->
    <file path="catalog/controller/extension/module/featured.php">
        <operation>
            <search><![CDATA['price'        => $price,]]></search>
            <add position="after"><![CDATA['product_tag'  => $product_info['product_tag'],]]></add>
        </operation>
    </file>

    <!-- 3. 给Bestsellers模块控制器传递字段数据到模板 -->
    <file path="catalog/controller/extension/module/bestseller.php">
        <operation>
            <search><![CDATA['price'        => $price,]]></search>
            <add position="after"><![CDATA['product_tag'  => $product_info['product_tag'],]]></add>
        </operation>
    </file>

    <!-- 4. 给Latest模块控制器传递字段数据到模板 -->
    <file path="catalog/controller/extension/module/latest.php">
        <operation>
            <search><![CDATA['price'        => $price,]]></search>
            <add position="after"><![CDATA['product_tag'  => $product_info['product_tag'],]]></add>
        </operation>
    </file>

    <!-- 5. 在Featured模块模板中显示自定义标签 -->
    <file path="catalog/view/theme/*/template/extension/module/featured.twig">
        <operation>
            <!-- 可根据需求调整标签显示位置,示例放在产品名称下方 -->
            <search><![CDATA[<h4><a href="{{ product.href }}">{{ product.name }}</a></h4>]]></search>
            <add position="after"><![CDATA[{% if product.product_tag %}<div class="product-tag">{{ product.product_tag }}</div>{% endif %}]]></add>
        </operation>
    </file>

    <!-- 6. 在Bestsellers模块模板中显示自定义标签 -->
    <file path="catalog/view/theme/*/template/extension/module/bestseller.twig">
        <operation>
            <search><![CDATA[<h4><a href="{{ product.href }}">{{ product.name }}</a></h4>]]></search>
            <add position="after"><![CDATA[{% if product.product_tag %}<div class="product-tag">{{ product.product_tag }}</div>{% endif %}]]></add>
        </operation>
    </file>

    <!-- 7. 在Latest模块模板中显示自定义标签 -->
    <file path="catalog/view/theme/*/template/extension/module/latest.twig">
        <operation>
            <search><![CDATA[<h4><a href="{{ product.href }}">{{ product.name }}</a></h4>]]></search>
            <add position="after"><![CDATA[{% if product.product_tag %}<div class="product-tag">{{ product.product_tag }}</div>{% endif %}]]></add>
        </operation>
    </file>
</modification>

关键注意事项:

  • 将代码中的 product_tag 替换为你实际新增的数据库字段名
  • 模板路径中的 * 匹配所有主题,若仅需修改特定主题,将 * 替换为目标主题文件夹名称
  • 可根据前端样式需求,调整模板中标签的HTML结构和CSS类名
  • 启用OCMOD后,需在后台清除系统缓存(路径:系统 > 设置 > 编辑商店 > 服务器 > 清除缓存)

内容的提问来源于stack exchange,提问作者André Mattos

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.19 17:24:58