php - 显示产品的计量单位

标签 php html opencart opencart2.x

美好的一天。请帮我显示 cargo 的计量单位。 OcStore 2.3 引擎。 默认情况下,测量单位不会显示在产品旁边,他们帮助我以这种方式将它们显示在产品页面上:

catalog/model/catalog/product.php

查找行:

public function getProduct($product_id) {

在上述行之前添加以下代码:

public function getProductWeightWithUnit($product_id) {
    $product_info = $this->getProduct($product_id);

    $query = $this->db->query("SELECT unit FROM `" . DB_PREFIX . "weight_class_description` WHERE 
    weight_class_id='".$product_info['weight_class_id']."'");

    if ($query->num_rows) {
        return number_format($product_info['weight'],2) . " " . $query->row['unit'];
    } else {
        return false;
    }
}

保存更改并关闭文件。

现在,打开文件

catalog/controller/product/product.php

查找行:

if ($product_info['minimum']) {

在上述行之前添加以下代码:

if ($product_info['weight']) {
     $data['weight'] = $this->model_catalog_product->getProductWeightWithUnit($this->request->get['product_id']);
} else {
     $data['weight'] = false;
}

现在,后端代码已准备就绪。根据您使用的主题,您需要从主题中编辑正确的product.tpl 文件。例如,如果您使用默认主题,则要编辑的文件如下:

catalog/view/theme/default/template/product/product.tpl

找到行:

<li><?php echo $text_stock; ?> <?php echo $stock; ?></li>

并在后面添加以下代码:

<li><?php echo $weight; ?></li>

好吧!一切都在产品页面上进行。但您需要它在模块(例如特色产品)中同样工作。

我对模块执行了所有相同的步骤

后端:

catalog/controller/extension/module/featured.php

和前端:

catalog/view/theme/default/template/extension/module/featured.tpl

但我收到错误:

Notice: Undefined index: product_id in C:\OSPanel\domains\mywebsite.com\catalog\controller\extension\module\featured.php on line 43

这就是它所说的:

    if ($product_info['weight']) {
LINE 43     $data['weight'] = $this->model_catalog_product->getProductWeightWithUnit($this->request->get['product_id']);
    } else {
        $data['weight'] = false;
    }

为什么在 ?? 中没有看到 product_id

最佳答案

打开catalog/controller/extension/module/featured.php

查找

if ($this->config->get('config_tax')) {

添加在前面

if ($product_info['weight']) {
    $weight = $this->model_catalog_product->getProductWeightWithUnit($product_info['product_id']);
} else {
    $weight = false;
}

基本上,我在这里将 $this->request->get['product_id'] 替换为 $product_info['product_id'],如@K.B。在他的回答中说了,但做了更准确的例子。

然后,在同一个文件中查找

'tax'         => $tax,

添加到后面

'weight'      => $weight,

现在转到catalog/view/theme/default/template/extension/module/featured.tpl

查找

<?php if ($product['tax']) { ?>
<span class="price-tax"><?php echo $text_tax; ?> <?php echo $product['tax']; ?></span>
<?php } ?>

添加到后面

<?php if ($product['weight']) { ?>
<span><?php echo $product['weight']; ?></span>
<?php } ?>

关于php - 显示产品的计量单位,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63313691/

相关文章:

php - OpenCart 在 Controller 外加载模型

php - Opencart 1.5.2 在一个下拉列表中显示类别

php - 使用 PHP 禁用 href 链接

javascript - 在 Angular 2 中使用 HTML5 主题

php - 将用户发送到预填充的亚马逊购物车结账处

html - 如何独立固定表格宽度内容?

javascript - 如何根据下拉上下文更改 jQuery inputmask 掩码?

ssl - 我从 godaddy 购买了 ssl,但域 url 重定向有问题

php - 使用 PHP 和 MySQLi 在不同的数据库表中插入变量和数组

php - 使用 PHP(或查询)在 MySQL 数据库中使用超过数千行的常用词