Example #1
0
 public function onAfterSerialConsume(&$serial)
 {
     $user = hikaserial::loadUser(true);
     $cms_id = (int) @$user->user_cms_id;
     $serial_user = null;
     $ids = array();
     if (!empty($serial->serial_user_id)) {
         $userClass = hikaserial::get('shop.class.user');
         $serial_user = $userClass->get($serial->serial_user_id);
     }
     parent::listPlugins('pointsconsumer', $ids, false);
     foreach ($ids as $id) {
         parent::pluginParams($id);
         if (in_array($serial->serial_pack_id, $this->plugin_params->packs_id)) {
             $points = (int) $this->plugin_params->value;
             if (!empty($this->plugin_params->dynamic_value) && !empty($serial->serial_extradata['points_value'])) {
                 $points += (int) $serial->serial_extradata['points_value'];
             }
             $user_id = $cms_id;
             if (!empty($this->plugin_params->target_serial_user) && !empty($serial_user->serial_user_id)) {
                 $user_id = $serial_user->user_cms_id;
             }
             $this->givePoints($cms_id, $points);
         }
     }
 }
Example #2
0
 public function onAfterSerialConsume(&$serial)
 {
     $user = hikaserial::loadUser(true);
     $cms_id = $user->user_cms_id;
     $ids = array();
     parent::listPlugins('groupconsumer', $ids, false);
     foreach ($ids as $id) {
         parent::pluginParams($id);
         if ($this->plugin_params->pack_id == $serial->serial_pack_id) {
             $this->updateGroup($cms_id, $this->plugin_params->group_id);
         }
     }
 }
Example #3
0
 public function onBeforeSerialMailSend(&$mail, &$mailer, &$serials, $order)
 {
     $ids = array();
     parent::listPlugins('mailtocustomfield', $ids, false);
     if (empty($ids)) {
         return;
     }
     $fullOrder = null;
     foreach ($ids as $id) {
         parent::pluginParams($id);
         $customfield_type = null;
         foreach ($serials as $k => $serial) {
             if (is_string($this->plugin_params->packs) && strpos(',' . $this->plugin_params->packs . ',', ',' . $serial->serial_pack_id . ',') === false) {
                 continue;
             }
             if (is_array($this->plugin_params->packs) && !in_array($serial->serial_pack_id, $this->plugin_params->packs)) {
                 continue;
             }
             $custom_field = $this->plugin_params->custom_field;
             if (empty($custom_field)) {
                 continue;
             }
             list($customfield_type, $custom_field) = explode('.', $custom_field, 2);
             if ($fullOrder === null) {
                 $orderClass = hikaserial::get('shop.class.order');
                 $fullOrder = $orderClass->loadFullOrder($order->order_id, true, false);
             }
             if ($customfield_type == 'order' && !isset($fullOrder->{$custom_field})) {
                 continue;
             }
             if ($customfield_type == 'item') {
                 $f = false;
                 foreach ($fullOrder->products as $k => $product) {
                     if (isset($product->{$custom_field})) {
                         $f = true;
                         break;
                     }
                 }
                 if (!$f) {
                     continue;
                 }
             }
             if ($customfield_type == 'item') {
                 $this->sendCustomEmail($serial, $fullOrder);
             } else {
                 $this->sendCustomEmail($serials, $fullOrder);
                 break;
             }
         }
     }
 }
Example #4
0
 public function onBeforeSerialConsume(&$serial, $user_id, &$do, &$extra_data)
 {
     $user = hikaserial::loadUser(true);
     $ids = array();
     parent::listPlugins('groupfilterconsumer', $ids, false);
     if (!$do) {
         return;
     }
     foreach ($ids as $id) {
         parent::pluginParams($id);
         if (in_array($serial->serial_pack_id, $this->plugin_params->packs_id)) {
             if (empty($user) || empty($user->user_cms_id)) {
                 $do = false;
             }
             if (!empty($this->plugin_params->groups)) {
                 $valid_groups = explode(',', trim($this->plugin_params->groups, ','));
                 foreach ($valid_groups as &$g) {
                     $g = (int) $g;
                 }
                 unset($g);
                 if (!HIKASHOP_J16) {
                     $joomla_user = clone JFactory::getUser($user->user_cms_id);
                     $userGroups = array($joomla_user->gid);
                 } else {
                     jimport('joomla.access.access');
                     $userGroups = JAccess::getGroupsByUser($user->user_cms_id, true);
                 }
                 $f = false;
                 foreach ($userGroups as $g) {
                     if (in_array($g, $valid_groups)) {
                         $f = true;
                         break;
                     }
                 }
                 if (!$f) {
                     $do = false;
                 }
             }
         }
     }
 }
Example #5
0
 public function onSerialOrderPreUpdate($new, &$order, &$order_serial_params)
 {
     if (!$new) {
         return;
     }
     $ids = array();
     parent::listPlugins('serialperorder', $ids, false);
     foreach ($ids as $id) {
         parent::pluginParams($id);
         if ((int) $this->plugin_params->quantity == 0 || (int) $this->plugin_params->pack_id == 0) {
             continue;
         }
         if (empty($order_serial_params['order'][(int) $this->plugin_params->pack_id])) {
             $order_serial_params['order'][(int) $this->plugin_params->pack_id] = array(0, 0);
         }
         if (!is_array($order_serial_params['order'][(int) $this->plugin_params->pack_id])) {
             $order_serial_params['order'][(int) $this->plugin_params->pack_id] = array($order_serial_params['order'][(int) $this->plugin_params->pack_id], 0);
         }
         $order_serial_params['order'][(int) $this->plugin_params->pack_id][1] += (int) $this->plugin_params->quantity;
     }
 }
Example #6
0
 public function onPackGeneratorTypeDisplay(&$values)
 {
     parent::listPlugins('coupongen', $values);
 }
Example #7
0
 public function onPackGeneratorTypeDisplay(&$values)
 {
     parent::listPlugins('timelimitedgen', $values);
 }
Example #8
0
 public function onBeforeSerialConsume(&$serial, $user_id, &$do, &$extra_data)
 {
     if (empty($user_id)) {
         $user_id = hikaserial::loadUser();
     }
     $app = JFactory::getApplication();
     $products_added = array();
     $ids = array();
     $product_qty = array();
     $current_products = $app->getUserState('com_hikaserial.plg_productaddconsumer.products', array());
     if (!empty($current_products)) {
         $current_products[$serial->serial_id] = array();
         foreach ($current_products as $serial_id => $products) {
             foreach ($products as $product_id) {
                 if (empty($product_qty[$product_id])) {
                     $product_qty[$product_id] = 0;
                 }
                 $product_qty[$product_id]++;
             }
         }
     }
     parent::listPlugins('productaddconsumer', $ids, false);
     foreach ($ids as $id) {
         parent::pluginParams($id);
         if ($this->plugin_params->pack_id == $serial->serial_pack_id) {
             if (empty($user_id)) {
                 $app->enqueueMessage(JText::_('PLEASE_LOGIN'));
                 $do = false;
                 return;
             } elseif ($serial->serial_user_id != 0 && $serial->serial_user_id != $user_id) {
                 $app->enqueueMessage(JText::_('NOT_YOUR_SERIAL'));
                 $do = false;
                 return;
             }
             if (empty($product_qty[$this->plugin_params->product_id])) {
                 $product_qty[$this->plugin_params->product_id] = 1;
             } else {
                 $product_qty[$this->plugin_params->product_id]++;
             }
             $this->addProductToCart($this->plugin_params->product_id, $product_qty[$this->plugin_params->product_id]);
             if (empty($products_added[$serial->serial_id])) {
                 $products_added[$serial->serial_id] = array();
             }
             $products_added[$serial->serial_id][] = $this->plugin_params->product_id;
         }
     }
     if (!empty($products_added)) {
         if (!empty($current_products)) {
             foreach ($current_products as $serial_id => $products) {
                 if (empty($products_added[$serial_id])) {
                     $products_added[$serial_id] = $products;
                 } else {
                     $products_added[$serial_id] = array_merge($products_added[$serial_id], $products);
                 }
             }
         }
         $app->enqueueMessage(JText::_('PRODUCT_ADDED_TO_YOUR_CART'));
         $app->setUserState('com_hikaserial.plg_productaddconsumer.products', $products_added);
         $serial->managed = true;
         if (empty($serial->serial_user_id)) {
             $updateSerial = new stdClass();
             $updateSerial->serial_id = $serial->serial_id;
             $updateSerial->serial_user_id = $user_id;
             $serialClass = hikaserial::get('class.serial');
             $serialClass->save($updateSerial);
         }
     }
 }