load->model('localisation/currency'); $currencies = $this->model_localisation_currency->getCurrencies(); if (isset($this->session->data['currency'])) { $code = $this->session->data['currency']; } if (isset($this->request->cookie['currency']) && !array_key_exists($code, $currencies)) { $code = $this->request->cookie['currency']; } if (!array_key_exists($code, $currencies)) { $code = $this->config->get('config_currency'); } if (!isset($this->session->data['currency']) || $this->session->data['currency'] != $code) { $this->session->data['currency'] = $code; } // Set a new currency cookie if the code does not match the current one if (!isset($this->request->cookie['currency']) || $this->request->cookie['currency'] != $code) { $option = [ 'expires' => time() + 60 * 60 * 24 * 30, 'path' => '/', 'SameSite' => 'Lax' ]; setcookie('currency', $code, $option); } $this->registry->set('currency', new \Opencart\System\Library\Cart\Currency($this->registry)); } }