Добрый день всем! Нужен совет. На одном из сайтов на базе ShopmodxBox хочется сделать такую штуку. После покупки определенного товара, чтобы рядом с ним горел индикатор что ты уже приобрел этот товар, разумеется когда ты залогинен. Помогите с ходом мысли. Я так понимаю без переопределения процессоров не обойтись…
Добрый день. разумеется когда ты залогинен. Это не обязательное условие. Вопрос: речь только о текущей корзине, или обо всей истории заказов? То есть если человек хоть когда-то этот товар покупал, значит ему надо показывать эту информацию?
Добрый день, Николай. Думается что условие обязательное ведь речь идет не только о текущей корзине, а вообще о тех товарах которые когда либо купил данный пользователь
ОК. Пробуйте так в процессоре web/catalog/products/getdata: protected function setSelection(xPDOQuery $c) { $c = parent::setSelection($c);
.....................
if($user_id = $this->modx->user->id){
$OrdersTable = $this->modx->getTableName('Order');
$OrderProductTable = $this->modx->getTableName('OrderProduct');
$c->select(array(
"(select count(*) FROM {$OrdersTable} o
INNER JOIN {$OrderProductTable} pt on o.id = pt.order_id
where
pt.product_id = Product.id
AND o.contractor = {$user_id}
) as `exists`",
));
}
return $c;
}