first commit
This commit is contained in:
48
catalog/controller/startup/currency.php
Normal file
48
catalog/controller/startup/currency.php
Normal file
@ -0,0 +1,48 @@
|
||||
<?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));
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user