Оплата размещения из личного кабинета

Друзья всем доброго дня!
Я рассмотрю общий пример, а не конкретно свой проект.
Допустим у нас сайт с досками объявлений. В личном кабинете зарегистрированный пользователь может добавить объявления.
— Задачи -
У каждого пользователя есть свой баланс.
Каждый пользователь может сделать какое то объявление ВИП допустим 10 руб в день.
Каждое обычное объявление съедает с общего баланса допустим 5 рублей в день.
Когда баланс кончается, объявления снимаются с публикации (пишем условие)
Каждый зарегистрированный пользователь может пополнить общий баланс сбербанк, киви, wmr, смс и т.д
Каждый пользователь из личного кабинета может активировать или деактивировать объявление на какой то срок (планировщик?)

Проект не коммерческий и не имеет ничего общего с досками объявлений, я описал функционал который требуется. Аналогия похожа на доски. Дайте совет как реализовать подобные вещи. Возможно есть готовые решения?
Сергей
31 января 2017, 12:22
modx.pro
1
1 673
0

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

Сергей
31 января 2017, 22:39
-3
вобщем никто ничего не знает…
    Сергей
    01 февраля 2017, 16:48
    0
    Друзья дайте совет неужели нет мыслей?
      Максим Кузнецов
      01 февраля 2017, 16:59
      +2
      Так никто ничего не знает..)

      По факту — внутренний баланс можно реализовать через 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.
      Игорь
      15 марта 2019, 21:13
      0
      Подскажите нашли решение?
        Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
        4