| 1: | <?php
|
| 2: | namespace Opencart\Catalog\Controller\Startup;
|
| 3: | |
| 4: | |
| 5: | |
| 6: | |
| 7: |
|
| 8: | class Currency extends \Opencart\System\Engine\Controller {
|
| 9: | |
| 10: | |
| 11: |
|
| 12: | public function index(): void {
|
| 13: | $code = '';
|
| 14: |
|
| 15: | $this->load->model('localisation/currency');
|
| 16: |
|
| 17: | $currencies = $this->model_localisation_currency->getCurrencies();
|
| 18: |
|
| 19: | if (isset($this->session->data['currency'])) {
|
| 20: | $code = $this->session->data['currency'];
|
| 21: | }
|
| 22: |
|
| 23: | if (isset($this->request->cookie['currency']) && !array_key_exists($code, $currencies)) {
|
| 24: | $code = $this->request->cookie['currency'];
|
| 25: | }
|
| 26: |
|
| 27: | if (!array_key_exists($code, $currencies)) {
|
| 28: | $code = $this->config->get('config_currency');
|
| 29: | }
|
| 30: |
|
| 31: | if (!isset($this->session->data['currency']) || $this->session->data['currency'] != $code) {
|
| 32: | $this->session->data['currency'] = $code;
|
| 33: | }
|
| 34: |
|
| 35: |
|
| 36: | if (!isset($this->request->cookie['currency']) || $this->request->cookie['currency'] != $code) {
|
| 37: | $option = [
|
| 38: | 'expires' => time() + 60 * 60 * 24 * 30,
|
| 39: | 'path' => '/',
|
| 40: | 'SameSite' => 'Lax'
|
| 41: | ];
|
| 42: |
|
| 43: | setcookie('currency', $code, $option);
|
| 44: | }
|
| 45: |
|
| 46: | $this->registry->set('currency', new \Opencart\System\Library\Cart\Currency($this->registry));
|
| 47: | }
|
| 48: | }
|
| 49: | |