Php opencart如何使用扩展计算价格
在opencart的cofirmation页面中,使用一些扩展来计算价格,这些扩展保存在扩展类型为“total”的数据库中。这是在那里使用的代码Php opencart如何使用扩展计算价格,php,opencart,Php,Opencart,在opencart的cofirmation页面中,使用一些扩展来计算价格,这些扩展保存在扩展类型为“total”的数据库中。这是在那里使用的代码 $total_data = array(); $total = 0; $taxes = $this->cart->getTaxes(); $this->load->model('checkout/extension'); $sort_order = array(); $results = $this->model_c
$total_data = array();
$total = 0;
$taxes = $this->cart->getTaxes();
$this->load->model('checkout/extension');
$sort_order = array();
$results = $this->model_checkout_extension->getExtensions('total');
foreach ($results as $key => $value) {
$sort_order[$key] = $this->config->get($value['key'] . '_sort_order');
}
array_multisort($sort_order, SORT_ASC, $results);
foreach ($results as $result) {
$this->load->model('total/' . $result['key']);
$this->{'model_total_' . $result['key']}->getTotal($total_data, $total, $taxes);
}
$sort_order = array();
foreach ($total_data as $key => $value) {
$sort_order[$key] = $value['sort_order'];
}
array_multisort($sort_order, SORT_ASC, $total_data);
在此计算之后,变量$total_data
将作为定价详细信息显示在模板文件中。我真的搞不懂计算是怎么进行的。我想在计算中添加一些额外的数据。首先,加载所有totals扩展名,然后进行排序,然后计算每个扩展名对应的价格,最后返回排序后的值。我想这有点过分了,因为可能代码可以改进,而不是每个周期3个(没有尝试,只是我的第一个猜测)
总之,总数如下所示:
- 小计
- 大桶
- 息票
- 船运
- 总数
total
total的排序顺序为99。然后,所有这些总计将与订单一起存储为文本表示形式,因此,当您更改其排序顺序时,这将仅在新订单中可见
如果您想添加自己的总计,我建议为其创建一个新类,以便由默认流处理。您可以从复制、重命名和编辑在目录/model/total/*.php
中找到的前端部件和组件的任何总计开始
admin/controller/total/*.php
admin/view/template/total/*.tpl
admin/language/english/total/*.php