Автор Тема: Удаление брошенной корзины при выходе с сайта  (Прочитано 322 раз)

20 Сентябрь 2015, 16:59:09
  • Старожил
  • ****
  • Сообщений: 352
  • Репутация: +1/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Есть некая обработка в PHP которая удаляет брошенные корзины
Db::getInstance()->execute('DELETE FROM `'._DB_PREFIX_.'cart` WHERE `id_address_delivery` = 0';
Db::getInstance()->execute('DELETE FROM `'._DB_PREFIX_.'cart_product` WHERE `id_address_delivery` =0 ';
Но это не устраивает. Надо удалять только конкретные записи в cart и 'cart_product
С определенным   id_cart.
Как в данном случае определить $id_cart  .
Что-то типа
Db::getInstance()->execute('DELETE FROM `'._DB_PREFIX_.'cart` WHERE ` id_cart ` = '.(int)$id_cart);
Db::getInstance()->execute('DELETE FROM `'._DB_PREFIX_.'cart_product` WHERE ` id_cart ` = '.(int)$id_cart);
Спасибо!
20 Сентябрь 2015, 17:04:35
Ответ #1
  • Ветеран
  • *****
  • Сообщений: 14085
  • Репутация: +14569/-2
  • Сообщество PrestaShop
    • Просмотр профиля
Можно так
$id_cart =  $context->cookie->id_cartили
$id_cart = $cookie->__get('id_cart');
20 Сентябрь 2015, 17:28:14
Ответ #2
  • Старожил
  • ****
  • Сообщений: 352
  • Репутация: +1/-0
  • Сообщество PrestaShop
    • Просмотр профиля
20 Сентябрь 2015, 18:00:29
Ответ #3
  • Старожил
  • ****
  • Сообщений: 352
  • Репутация: +1/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Нет такие не работают.
Работает вот так
$id_cart = Context::getContext()->cookie->id_cart;Но теперь как эту переменную воткнуть в
Db::getInstance()->execute('DELETE FROM `'._DB_PREFIX_.'cart` WHERE `id_cart` = '.$id_cart);Так?
21 Сентябрь 2015, 10:19:49
Ответ #4
  • Ветеран
  • *****
  • Сообщений: 14085
  • Репутация: +14569/-2
  • Сообщество PrestaShop
    • Просмотр профиля
$id_cart = Context::getContext()->cookie->id_cart;
Db::getInstance()->execute('DELETE FROM `'._DB_PREFIX_.'cart` WHERE `id_cart` = '.$id_cart);
Да, так.
21 Сентябрь 2015, 14:07:13
Ответ #5
  • Старожил
  • ****
  • Сообщений: 352
  • Репутация: +1/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Спасибо вам всем за ответы. Все ок.
Еще маленький вопросик.
В контролере   идет загрузка страницы
$this->setTemplate(_PS_THEME_DIR_.'имя.tpl');Но страница загружается внутри открытой, рабочей страницы.
А как загрузить страницу в этом окне но перед загрузкой очистить рабочее окно.
Спасибо.
21 Сентябрь 2015, 14:21:39
Ответ #6
  • Ветеран
  • *****
  • Сообщений: 942
  • Репутация: +10/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Любая перезагрузка меняет страницу, очищает старые данные (кроме тех, что специально соханяют). В контроллере идет загрузка шаблонов.
$this->setTemplate(_PS_THEME_DIR_.'имя.tpl');Это шаблон центральной части. Плюс еще header.tpl и footer.tpl.
В окнах загружают iframe, для фрейма делают отдельный шаблон и очистка не нужна.
Еще загрузить свою страницу можно редиректом или во всплывающем окне, в этих случаях очиска тоже не нужна.
21 Сентябрь 2015, 14:46:27
Ответ #7
  • Старожил
  • ****
  • Сообщений: 352
  • Репутация: +1/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Спасибо! Всплывающее не пойдет в моем случае, так как это страница ухода с сайта.
А редиректом попробую.
Благодарю за ответы!