显示产品的计量单位
Display units of measure for a product
美好的一天。请帮我显示商品的计量单位。 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
您必须使用 $product_info['product_id']
或仅使用 $product_id
而不是 $this->request->get['product_id']
因为您无法使用此表达式获得多个产品的 product_id,这些产品位于循环 foreach ($products as $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;
}
基本上,我在这里用$product_info['product_id']
替换了$this->request->get['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 } ?>
美好的一天。请帮我显示商品的计量单位。 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
您必须使用 $product_info['product_id']
或仅使用 $product_id
而不是 $this->request->get['product_id']
因为您无法使用此表达式获得多个产品的 product_id,这些产品位于循环 foreach ($products as $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;
}
基本上,我在这里用$product_info['product_id']
替换了$this->request->get['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 } ?>