/**
  * Public function that creates a single instance
  */
 public static function getInstance()
 {
     if (!isset(self::$_instance)) {
         self::$_instance = new self();
     }
     return self::$_instance;
 }
Exemple #2
0
 /**
  * Add recurring payment for specified plan.
  * Returns true if new recurring payment was added for
  * specified transaction.
  *
  * @param integer $plan_id
  * @param float $amount
  * @param integer $status
  * @return boolean
  */
 public function addRecurringPayment($plan_id, $amount, $status)
 {
     $result = false;
     // get managers
     $manager = ShopRecurringPaymentsManager::getInstance();
     $plan_manager = ShopTransactionPlansManager::getInstance();
     $buyer_manager = ShopBuyersManager::getInstance();
     $transaction_manager = ShopTransactionsManager::getInstance();
     // get transaction and associated plan
     $plan = $plan_manager->getSingleItem($plan_manager->getFieldNames(), array('id' => $plan_id));
     // plan id is not valid
     if (!is_object($plan)) {
         return $result;
     }
     // insert new data
     $data = array('plan' => $plan->id, 'amount' => $amount, 'status' => $status);
     $manager->insertData($data);
     $payment_id = $manager->getInsertedID();
     $result = true;
     // get newly inserted data
     $payment = $manager->getSingleItem($manager->getFieldNames(), array('id' => $payment_id));
     // get transaction and buyer
     $transaction = $transaction_manager->getSingleItem($transaction_manager->getFieldNames(), array('id' => $plan->transaction));
     // trigger event
     Events::trigger('shop', RecurringPayment::$signals[$status], $transaction, $plan, $payment);
     return $result;
 }