Ekdant-Online-Store/catalog/controller/startup/currency.php

48 lines
1.3 KiB
PHP
Raw Permalink Normal View History

2024-08-06 12:21:00 +00:00
<?php
namespace Opencart\Catalog\Controller\Startup;
/**
* Class Currency
*
* @package Opencart\Catalog\Controller\Startup
*/
class Currency extends \Opencart\System\Engine\Controller {
/**
* @return void
*/
public function index(): void {
$code = '';
$this->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));
}
}