Exemplo n.º 1
0
 /**
  * After a checkout has been completed
  * and a payment has been received (instant)
  * run this method to enable
  * any non-recurring subscriptions that were created when the order was saved
  *
  * @param $order_id
  * @return unknown_type
  */
 public static function enableNonRecurringSubscriptions($order_id)
 {
     $error = false;
     $errorMsg = "";
     JTable::addIncludePath(JPATH_ADMINISTRATOR . '/components/com_tienda/tables');
     JModel::addIncludePath(JPATH_ADMINISTRATOR . '/components/com_tienda/models');
     $model = JModel::getInstance('Orders', 'TiendaModel');
     $model->setId($order_id);
     $model_issues = null;
     $order = $model->getItem();
     if ($order->orderitems) {
         foreach ($order->orderitems as $orderitem) {
             // if this orderItem created a subscription, enable it
             if (!empty($orderitem->orderitem_subscription)) {
                 // these are only for one-time payments that create subscriptions
                 // recurring payment subscriptions are handled differently - by the payment plugins
                 $subscription = JTable::getInstance('Subscriptions', 'TiendaTable');
                 $subscription->load(array('orderitem_id' => $orderitem->orderitem_id));
                 if (!empty($subscription->subscription_id)) {
                     $subscription->subscription_enabled = '1';
                     Tienda::load('TiendaHelperProduct', 'helpers.product');
                     $product = TiendaHelperProduct::load($subscription->product_id, true, false);
                     if ($product->subscription_period_unit == 'I') {
                         $model_issues = JModel::getInstance('ProductIssues', 'TiendaModel');
                         $subscription->subscription_issue_end_id = $model_issues->getEndIssueId($subscription->product_id, $product->subscription_period_interval);
                     }
                     if (!$subscription->save()) {
                         // track error
                         $error = true;
                         $errorMsg .= $subscription->getError();
                         // TODO What to do with this error
                     } else {
                         $dispatcher = JDispatcher::getInstance();
                         $dispatcher->trigger('onAfterEnableSubscription', array($subscription));
                     }
                 }
             }
         }
     }
 }
Exemplo n.º 2
0
 /**
  * Returns the full path to the product's image gallery files
  *
  * @param int $id
  * @return string
  */
 public static function getGalleryPath($row)
 {
     static $paths;
     if (is_object($row)) {
         $id = $row->product_id;
         $paths[$id] = $row->getImagePath(true);
     } else {
         $id = (int) $row;
         if (!is_array($paths)) {
             $paths = array();
         }
         if (empty($paths[$id])) {
             $paths[$id] = '';
             if (isset($this) && is_a($this, 'TiendaHelperProduct')) {
                 $helper =& $this;
             } else {
                 $helper = new TiendaHelperProduct();
             }
             $row = $helper->load((int) $id, true, false);
             if (empty($row->product_id)) {
                 // TODO figure out what to do if the id is invalid
                 return null;
             }
             $paths[$id] = $row->getImagePath(true);
         }
     }
     return $paths[$id];
 }