【发布时间】:2011-11-09 13:18:42
【问题描述】:
在打开的购物车中,我正在构建一个模块,我需要知道价格计算是如何完成的,我遇到了这段代码
$price = $this->currency->format($this->tax->calculate($result['price'],
$result['tax_class_id'], $this->config->get('config_tax')));
if ((float)$result['special']) {
$special = $this->currency->format($this->tax->calculate(
$result['special'],
$result['tax_class_id'], $this->config->get('config_tax')));
} else {
$special = false;
}
if ($this->config->get('config_tax')) {
$tax = $this->currency->format((float)$result['special'] ?
$result['special'] : $result['price']);
} else {
$tax = false;
}
实际上,我不知道这里到底发生了什么,因为我可以看到$price 和$special 和$tax 之间确实没有区别,但应该有一个实现它的原因方式。
我确定我在这里遗漏了什么任何人向我解释如何在 opencart 中完成价格计算?
【问题讨论】:
-
嗨,我的问题不需要修改,因为它需要一个答案,我真的很感谢你的修改,但有人有想法吗?
-
我修改了因为它无法阅读那个东西。我认为没有上下文很难回答。我可以肯定地告诉你的一件事是,因为我看到一个浮点测试
if ((float)$result['special']),这是由一个没有经验的程序员编写的。要尝试解决,您必须查看结果 ["special"] 的来源,打印值,然后查看 $this->tax->calculate 方法。 -
这不是我写的,它是我发现的 te opencart 源代码的一部分,我不明白为什么有 3 个变量,而我可以看到它们可以是一个变量与总数,为什么 $special 是浮动的?你有什么想法吗?
-
opencart 是基于 mvc 的,因此这些函数的实现位于与我的模块无关的其他文件中,我不需要编辑它们,因为我会破坏使用它们的其他东西跨度>
-
我知道这是opencart的一部分,您不能修改其他文件中的功能,但您必须查看它们才能理解。还尝试打印出这些值并尝试理解它们。我不能只从这些代码行。