1: | <?php
|
2: | namespace Opencart\Catalog\Model\Extension\Opencart\Total;
|
3: | |
4: | |
5: | |
6: | |
7: |
|
8: | class Shipping extends \Opencart\System\Engine\Model {
|
9: | |
10: | |
11: | |
12: | |
13: | |
14: | |
15: | |
16: | |
17: |
|
18: | public function getTotal(array &$totals, array &$taxes, float &$total): void {
|
19: | if ($this->cart->hasShipping() && isset($this->session->data['shipping_method'])) {
|
20: | $totals[] = [
|
21: | 'extension' => 'opencart',
|
22: | 'code' => 'shipping',
|
23: | 'title' => $this->session->data['shipping_method']['name'],
|
24: | 'value' => $this->session->data['shipping_method']['cost'],
|
25: | 'sort_order' => (int)$this->config->get('total_shipping_sort_order')
|
26: | ];
|
27: |
|
28: | if (isset($this->session->data['shipping_method']['tax_class_id'])) {
|
29: | $tax_rates = $this->tax->getRates($this->session->data['shipping_method']['cost'], $this->session->data['shipping_method']['tax_class_id']);
|
30: |
|
31: | foreach ($tax_rates as $tax_rate) {
|
32: | if (!isset($taxes[$tax_rate['tax_rate_id']])) {
|
33: | $taxes[$tax_rate['tax_rate_id']] = $tax_rate['amount'];
|
34: | } else {
|
35: | $taxes[$tax_rate['tax_rate_id']] += $tax_rate['amount'];
|
36: | }
|
37: | }
|
38: | }
|
39: |
|
40: | $total += $this->session->data['shipping_method']['cost'];
|
41: | }
|
42: | }
|
43: | }
|
44: | |