Проверить покупался товар юзером или нет.
Приветствую. Есть вопрос.
Можно ли в Modx minishop, проверить, купил ли посетитель данный товар или нет?
Естественно посетитель зарегистрирован и залогинен в системе.
Установлены компоненты minishop2 И Ofiice.
На базе minishop2 делаю сайт по продаже обучающего видео. Подразумевается просмотр видео после покупки прямо на сайте. Готового компонента по продаже подобного контента не нашел.
Есть MSfile , но вроде это не совсем то, что нужно.
Хочу реализовать следующее.
Если авторизированный в системе посетитель приобрел и оплатил данный товар, то при заходе на страницу этого товара он видит приобретенный видеоурок. В остальных случаях посетитель видит описание урока и предложение о покупке.
Можно ли в Modx minishop, проверить, купил ли посетитель данный товар или нет?
Естественно посетитель зарегистрирован и залогинен в системе.
Установлены компоненты minishop2 И Ofiice.
На базе minishop2 делаю сайт по продаже обучающего видео. Подразумевается просмотр видео после покупки прямо на сайте. Готового компонента по продаже подобного контента не нашел.
Есть MSfile , но вроде это не совсем то, что нужно.
Хочу реализовать следующее.
Если авторизированный в системе посетитель приобрел и оплатил данный товар, то при заходе на страницу этого товара он видит приобретенный видеоурок. В остальных случаях посетитель видит описание урока и предложение о покупке.
Комментарии: 7
Как вариант можно попробовать сделать на — PayAndSee.
да зачем. Тут банально сниппет с проверкой покупки товара и все.
примерно так
$q = $modx->newQuery('msOrderProduct');
$q->innerJoin('msOrder', 'msOrder', "msOrder.id = msOrderProduct.order_id");
$q->where(array(
'msOrderProduct.product_id' => $product->id,
'msOrder.user_id' => $modx->user->id,
'msOrder.status' => 2,
));
$view = (bool)$modx->getCount('msOrderProduct', $q);
Спасибо!
Написал сниппет.
Написал сниппет.
<?php
$q = $modx->newQuery('msOrderProduct');
$q->innerJoin('msOrder', 'msOrder', "msOrder.id = msOrderProduct.order_id");
$q->where(array(
'msOrderProduct.product_id' => $product->id,
'msOrder.user_id' => $modx->user->id,
'msOrder.status' => 2,
));
$view = (bool)$modx->getCount('msOrderProduct', $q);
if ($view) {return "Куплено";} else {return "Не куплено";};
Судя по всему не работает. В чем я ошибся? В чем я ошибся?
$product->id
у вас не определена переменная product
Спасибо! Всё заработало.
Возможно вы сможете подсказать, что именно вы дописали, чтобы скрипт отрабатывал корректно?
Я дополнил строку
Однако, зарегистрированный пользователь теперь может скачать любой файл, а не только тот, что был им куплен… Как вы это обошли?
Я дополнил строку
'msOrderProduct.product_id' => $product->id,
вот так:'msOrderProduct.product_id' => $modx->resource,
И даже все заработало (зарегистрированный пользователь может скачать файл), а анонимный только купить.Однако, зарегистрированный пользователь теперь может скачать любой файл, а не только тот, что был им куплен… Как вы это обошли?
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.