Jump to content

Recommended Posts

Здравствуйте! Как сократить время жизни корзины opencart 2.3 до 7 дней. 

В файле system/library/cart/cart.php

нашёл строчку

$this->db->query("DELETE FROM " . DB_PREFIX . "cart WHERE (api_id > '0' OR customer_id = '0') AND date_added < DATE_SUB(NOW(), INTERVAL 2 MONTH)");

 

Пробовал, заменить "2 MONTH" на 7 DAY  - не сработало

 

Share this post


Link to post
Share on other sites

Нужно так:
$this->db->query("DELETE FROM " . DB_PREFIX . "cart WHERE date_added < DATE_SUB(NOW(), INTERVAL 7 DAY)");

  • +1 1

Share this post


Link to post
Share on other sites
11 минут назад, mpn2005 сказал:

Нужно так:
$this->db->query("DELETE FROM " . DB_PREFIX . "cart WHERE date_added < DATE_SUB(NOW(), INTERVAL 7 DAY)");

Отличное решение, но лучше через ocmod ;)

Share this post


Link to post
Share on other sites
29 минут назад, markimax сказал:

Отличное решение, но лучше через ocmod ;)

Это понятно.

Но поди разбери что там у ТС. Т.к. оригинальный запрос выглядит так:

$this->db->query("DELETE FROM " . DB_PREFIX . "cart WHERE (api_id > '0' OR customer_id = '0') AND date_added < DATE_SUB(NOW(), INTERVAL 1 HOUR)");

Я подсказал куда копать, а финальное оформление пусть каждый сам решает как делать.

 

  • +1 1

Share this post


Link to post
Share on other sites

Благодарю за помощь, в итоге какой код правильный и какой вставлять? 

Этот? только изменив 1 HOUR на 7 DAY 

$this->db->query("DELETE FROM " . DB_PREFIX . "cart WHERE (api_id > '0' OR customer_id = '0') AND date_added < DATE_SUB(NOW(), INTERVAL 1 HOUR)");

Share this post


Link to post
Share on other sites
7 часов назад, thvanx сказал:

Благодарю за помощь, в итоге какой код правильный и какой вставлять? 

Этот? только изменив 1 HOUR на 7 DAY 


$this->db->query("DELETE FROM " . DB_PREFIX . "cart WHERE (api_id > '0' OR customer_id = '0') AND date_added < DATE_SUB(NOW(), INTERVAL 1 HOUR)");

Это штатный запрос. Он чистит только для незалогиненных покупателей.

Если надо чистить для всех то запрос заменяем на этот:

$this->db->query("DELETE FROM " . DB_PREFIX . "cart WHERE date_added < DATE_SUB(NOW(), INTERVAL 7 DAY)");

И не копируйте код из сообщения на форуме. Лучше скопируйте из письма.

Т.к. при копировании на форуме иногда вставляются левые непечатные символы. И сайт упадёт с ошибкой.

 

Share this post


Link to post
Share on other sites

а можно и мне вопрос? дабы не плодить темы?

у меня обратная ситуация, корзина живет совсем не много, может минут 10, как увеличить время жизни? модуль,настройки? куда копать?

 

Спасибо.

Share this post


Link to post
Share on other sites

увеличить время жизни сессии + править класс cart (см.выше)

 

либо использовать такой модуль, не зависящий от времени сессий

 

Share this post


Link to post
Share on other sites
1 час назад, AlexDW сказал:

увеличить время жизни сессии + править класс cart (см.выше)

 

либо использовать такой модуль, не зависящий от времени сессий

 

 

Кроме времени жизни сессии - необходимо не забывать про session.cookie_lifetime.

Подробнее тут: https://www.php.net/manual/ru/session.configuration.php

Практически никто не учитывает факт того, что пользовтель может закрыть браузер!

 

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
You are posting as a guest. If you have an account, please sign in.
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


  • Recently Browsing   0 members

    No registered users viewing this page.

×

Important Information

On our site, cookies are used and personal data is processed to improve the user interface. To find out what and what personal data we are processing, please go to the link. If you click "I agree," it means that you understand and accept all the conditions specified in this Privacy Notice.