[РЕШЕНО] MiniShop2 автоматическая отчистка корзины раз в сутки

Здравствуйте. Кто нибудь может подсказать варианты автоматической очистки корзины раз в сутки? пробовал запускать через крон php файл, но так как нет авторизации в системе под админом, то он не очищает ничего. Спасибо за ответы!

UPD:
задал крону выполнение следующего файла раз в сутки в 00:00
Стирает все сессии, в админку приходится логинится каждый день

<?php
define('MODX_API_MODE', true);
require $_SERVER['DOCUMENT_ROOT'].'index.php';

$modx->getService('error','error.modError');
$modx->setLogLevel(modX::LOG_LEVEL_INFO);
$modx->setLogTarget(XPDO_CLI_MODE ? 'ECHO' : 'HTML');

$sql = "DELETE FROM modx_session";
$count = $modx->exec($sql);
// Получим количество удаленных записей
print("Удалено $count записей.");


?>
MrKarandash
06 февраля 2019, 15:58
modx.pro
468
0

Комментарии: 8

Владимир
06 февраля 2019, 16:35
0
Все данные по корзине хранятся в сессии, нет сессии — нет товаров в корзине. Очищай таблицу modx_session. Только придётся логинится каждый раз.
    MrKarandash
    06 февраля 2019, 16:56
    0
    define('MODX_API_MODE', true);
    require $_SERVER['DOCUMENT_ROOT'].'/index.php';
    
    $modx->getService('error','error.modError');
    $modx->setLogLevel(modX::LOG_LEVEL_INFO);
    $modx->setLogTarget(XPDO_CLI_MODE ? 'ECHO' : 'HTML');
    
    $data = array(
        'username' => '*****',
        'password' => '*****',
        'rememberme' => 1,
        'login_context' => 'mrg',
    );
    $response = $modx->runProcessor('/security/login', $data);
    if ($response->isError()) {
    
    } else {
    	if ($miniShop2 = $modx->getService('miniShop2')) {
    	    $miniShop2->initialize($modx->context->key);
    	    $miniShop2->cart->clean();
    	};
    }
    и все равно если даже открыть этот файл в режиме инкогнито браузера — нет толка. если в том окне, где залогинен в админку — корзина очищается
      MrKarandash
      06 февраля 2019, 17:03
      0
      Походу корзина очищается конкретно под того пользователя, чья сессия. А как очистить ее для всех, не удаляя логин админа?
        Владимир
        06 февраля 2019, 17:23
        0
        вы пытаетесь залогинится под юзером, но у анонимных пользователей нет аккаунта. Едиственный способ убивать сессию. Скажите первостепенную задачу, для чего вы хотите это реализовать?
          MrKarandash
          06 февраля 2019, 17:30
          0
          В зависимости ото дня недели есть скидки на разные товары. К примеру, в понедельник скидка на пиццу, а во вторник уже на другие позиции. Так вот что бы не было такого, что бы кинул пиццу по скидке в корзину в понедельник, а заказ со скидочной ценой в итоге отправил в пятницу
            Владимир
            06 февраля 2019, 17:37
            +1
            проще перед оформление заказа делать проверку, после уже выдавать сообщение об изменившейся цене, я думаю это самый правильный вариант. Вариант, которые хотите реализовать вы — по мне идеалогически неверный
    Володя
    06 февраля 2019, 17:44
    0
    плагин или кастомный класс корзины
    — писать товару корзину дату добавления
    — проверять дату, если не соответствует, удалять товар корзины
      MrKarandash
      06 февраля 2019, 17:49
      0
      Можно в принципе в куки при каждом добавлении товара присваивать текущую дату, сравнивать плагином и если дата не сегодняшняя — очищать корзину. При этом это будет индивидуально. Но можно зайти в режим разработчика и поправить куки на своем компе )) Маловероятно, но если вдруг — будет не приятно
      Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
      8