Инструкция FIX Сохранение session после закрытия браузера Opencart3

  • Друг форума
  • Программист
  • Автор темы
  • Администратор
  • Модер.
  • Команда форума
  • #1
В стандартном OpenCart 3 при закрытии браузера сбрасывается session и за этого удаляются товары с корзины, сбрасывается авторизация (в админке тоже), это fix вам поможет.
И так, приступим)
ВНИМАНИЕ! Перед редактированием или замене файлов сделайте бэкап!
Открываем /system/framework.php
Находим:
Код:
setcookie($config->get('session_name'), $session->getId(), (ini_get('session.cookie_lifetime') ? (time() + ini_get('session.cookie_lifetime')) : 0), ini_get('session.cookie_path'), ini_get('session.cookie_domain'));
И переносим строку за скобки
Код:
if ($config->get('session_autostart')) { code }

Должно получится так:
Код:
if ($config->get('session_autostart')) {

    if (isset($_COOKIE[$config->get('session_name')])) {
        $session_id = $_COOKIE[$config->get('session_name')];
    } else {
        $session_id = '';
    }

    $session->start($session_id);
 
}
    setcookie($config->get('session_name'), $session->getId(), ini_get('session.cookie_lifetime'), ini_get('session.cookie_path'), ini_get('session.cookie_domain'));

Далее идем в /system/library/session.php
Находим:

Код:
} else {
            trigger_error('Error: Could not load cache adaptor ' . $adaptor . ' session!');
            exit();
 }

После вставляем:
Код:
if ($this->adaptor && !session_id()) {
         session_set_cookie_params(time()+31536000, '/');
         session_start(); 
}

И последний файл: /system/library/session/db.php
Находим:

Код:
$this->db = $registry->get('db');
После вставляем:
Код:
if(!session_id()) {
        ini_set('session.use_only_cookies', 'Off');
        ini_set('session.use_cookies', 'On');
        ini_set('session.use_trans_sid', 'Off');
        ini_set('session.cookie_httponly', 'On');
        ini_set('session.gc_maxlifetime', 31536000);
}
 

Создайте аккаунт или войдите, чтобы комментировать

Вы должны быть участником, чтобы оставлять комментарии

Зарегистрироваться

Создайте учетную запись. Это просто!

Авторизация

Уже есть аккаунт? Авторизуйтесь.

Похожие темы

Ответы
0
Просмотры
549
Драйвер кеширования Redis для Opencart/Ocstore 1.5.x — 3.x Redis — это высокопроизводительное...
Ответы
0
Просмотры
1K
Ответы
0
Просмотры
1K
Сверху Снизу