Оплата размещения из личного кабинета
Друзья всем доброго дня!
Я рассмотрю общий пример, а не конкретно свой проект.
Допустим у нас сайт с досками объявлений. В личном кабинете зарегистрированный пользователь может добавить объявления.
— Задачи -
У каждого пользователя есть свой баланс.
Каждый пользователь может сделать какое то объявление ВИП допустим 10 руб в день.
Каждое обычное объявление съедает с общего баланса допустим 5 рублей в день.
Когда баланс кончается, объявления снимаются с публикации (пишем условие)
Каждый зарегистрированный пользователь может пополнить общий баланс сбербанк, киви, wmr, смс и т.д
Каждый пользователь из личного кабинета может активировать или деактивировать объявление на какой то срок (планировщик?)
Проект не коммерческий и не имеет ничего общего с досками объявлений, я описал функционал который требуется. Аналогия похожа на доски. Дайте совет как реализовать подобные вещи. Возможно есть готовые решения?
Я рассмотрю общий пример, а не конкретно свой проект.
Допустим у нас сайт с досками объявлений. В личном кабинете зарегистрированный пользователь может добавить объявления.
— Задачи -
У каждого пользователя есть свой баланс.
Каждый пользователь может сделать какое то объявление ВИП допустим 10 руб в день.
Каждое обычное объявление съедает с общего баланса допустим 5 рублей в день.
Когда баланс кончается, объявления снимаются с публикации (пишем условие)
Каждый зарегистрированный пользователь может пополнить общий баланс сбербанк, киви, wmr, смс и т.д
Каждый пользователь из личного кабинета может активировать или деактивировать объявление на какой то срок (планировщик?)
Проект не коммерческий и не имеет ничего общего с досками объявлений, я описал функционал который требуется. Аналогия похожа на доски. Дайте совет как реализовать подобные вещи. Возможно есть готовые решения?
Комментарии: 4
вобщем никто ничего не знает…
Друзья дайте совет неужели нет мыслей?
Так никто ничего не знает..)
По факту — внутренний баланс можно реализовать через msProfile, а на событие создания объявления (OnDocFormSave + проверка шаблона/родителя) в плагине проверять сумму на счете, и, при наличии соответствующей суммы, снимать с него. Примерно так:
Пополнение счета и тд, соответственно, из коробки msProfile.
По факту — внутренний баланс можно реализовать через msProfile, а на событие создания объявления (OnDocFormSave + проверка шаблона/родителя) в плагине проверять сумму на счете, и, при наличии соответствующей суммы, снимать с него. Примерно так:
//проверки нужного события, шаблона, статуса объявления и тд...
$user = $modx->getAuthenticatedUser('web');
$user_id = $user->get('id');
$user_money_profile = $modx->getObject('msCustomerProfile', $user_id);
$balance = $user_money_profile->get('account');
$balance = float($balance);
if ($balance > 5) {
$new_balance = $balance - 5;
$user_money_profile->set('account', $new_balance);
$user_money_profile->save();
}
else {
//отклоняем объявление и выводим соответствующее сообщение
}
Пополнение счета и тд, соответственно, из коробки msProfile.
Подскажите нашли решение?
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.