Инструкция 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);
}
 

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

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

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

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

Авторизация

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

Похожие темы

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