我需要根据价格不同地展示一些产品.我希望我可以简单地$price从相关的主题文件中检查变量的值,但$price包含货币格式的字符串.而且由于OpenCart支持多种货币格式,因此没有简单,可靠的方法将价格字符串转换回数字.
我查看了产品控制器类ControllerProductProduct.据我所知,OpenCart不会向视图公开数值价格.我可以修改控制器类,但我不愿意,因为它会使更新复杂化.
我忽略了什么吗?难道没有简单的方法可以在OpenCart主题中对价格进行数字比较吗?
综观product.php(v1.4.9.4 ControllerProductProduct)我可以看到下面的代码将是你在谈论$价格的格式化值:
if ($discount) {
$price = $this->currency->format($this->tax->calculate($discount, $result['tax_class_id'], $this->config->get('config_tax')));
} else {
$price = $this->currency->format($this->tax->calculate($result['price'],$result['tax_class_id'], $this->config->get('config_tax')));
Run Code Online (Sandbox Code Playgroud)
你为什么不把它改成以下......
if ($discount) {
$price_num = $this->tax->calculate($discount, $result['tax_class_id'], $this->config->get('config_tax'));
$price = $this->currency->format($price_num);
} else {
$price_num = $this->tax->calculate($result['price'],$result['tax_class_id'], $this->config->get('config_tax'));
$price = $this->currency->format($price_num);
Run Code Online (Sandbox Code Playgroud)
然后从这几行开始,您可以通过添加以下内容将此$ price_num值传递给模板:
$this->data['products'][] = array(
'product_id' => $result['product_id'],
...
'price' => $price,
'price_num' => $price_num,
...
Run Code Online (Sandbox Code Playgroud)
应该做你需要的
| 归档时间: |
|
| 查看次数: |
2675 次 |
| 最近记录: |