function savePaymentMode() { $cart = oseMscPublic::getCart(); $payment_mode = oseMscPublic::getPaymentMode(); $config = oseMscPublic::getConfig('global', 'obj'); if ($config->payment_mode != 'b') { $payment_mode = $config->payment_mode; } $register_form = oseRegistry::call('msc')->getConfig('register', 'obj')->register_form; // force to m if (empty($register_form) || $register_form == 'default') { $payment_mode = 'm'; } else { $items = $cart->get('items'); $msc = oseRegistry::call('msc'); foreach ($items as $item) { if (oseObject::getValue($item, 'recurrence_mode', 'period') == 'fixed') { $payment_mode = 'm'; } if (oseObject::getValue($item, 'entry_type', 'msc') == 'license') { $payment_mode = 'm'; } else { $extItem = $msc->getExtInfoItem(self::getEntryMscID($item), 'paymentAdv', 'obj'); $advItems = oseJson::decode(oseObject::getvalue($extItem, 'params', '{}'), true); $advItems = empty($advItems) ? array() : $advItems; $advOption = isset($advItems[oseObject::getvalue($item, 'msc_option')]) ? $advItems[oseObject::getvalue($item, 'msc_option')] : array(); if (oseObject::getValue($advOption, 'payment_mode', 'b') != 'b') { $payment_mode = $advOption['payment_mode']; } } $payment_method = oseMscPublic::getPaymentMethod(); if ($payment_method == 'paypal') { if (oseObject::getValue($item, 'p3', 0) >= 2 && strtolower(oseObject::getValue($item, 't3', 'day')) == 'year') { $payment_mode = 'm'; } if (oseObject::getValue($item, 'p3', 0) >= 24 && strtolower(oseObject::getValue($item, 't3', 'day')) == 'month') { $payment_mode = 'm'; } } } } if ($cart->get('total') <= 0 && $cart->get('next_total') <= 0) { $payment_mode = 'm'; } $cart->updateParams('payment_mode', $payment_mode); $cart->update(); return $payment_mode; }
public static function getPaymentMode() { $msc_id = JRequest::getInt('msc_id',0); $msc_option = JRequest::getCmd('msc_option',null); $msc = oseRegistry::call('msc'); $ext = $msc->getExtInfo($msc_id,'payment'); $extAdv = $msc->getExtInfo($msc_id,'paymentAdv'); $items = array(); if(oseObject::getValue($ext[$msc_option],'payment_mode','b') == 'a') { $items[] = array('id'=>1,'value'=>'a','text'=> JText::_('AUTOMATIC_RENEWING')); } elseif(oseObject::getValue($ext[$msc_option],'payment_mode','b') == 'm') { $items[] = array('id'=>1,'value'=>'m','text'=> JText::_('MANUAL_RENEWING')); } else { if(oseObject::getValue($extAdv[$msc_option],'payment_mode','b') != 'b') { $itemValue = oseObject::getValue($extAdv[$msc_option],'payment_mode'); if($itemValue == 'm') { $itemText = JText::_('MANUAL_RENEWING'); } else { $itemText = JText::_('AUTOMATIC_RENEWING'); } $items[] = array('id'=>1,'value'=>$itemValue,'text'=> $itemText); } else { $items[] = array('id'=>1,'value'=>'a','text'=> JText::_('AUTOMATIC_RENEWING')); $items[] = array('id'=>2,'value'=>'m','text'=> JText::_('MANUAL_RENEWING')); } } $config = oseMscPublic::getConfig('global', 'obj'); if($config->payment_mode == 'a') { $items = array(); $items[] = array('id'=>1,'value'=>'a','text'=> JText::_('AUTOMATIC_RENEWING')); } elseif($config->payment_mode == 'm') { $items = array(); $items[] = array('id'=>1,'value'=>'m','text'=> JText::_('MANUAL_RENEWING')); } $result = array(); if(empty($items)) { $result['total'] = 0; $result['results'] = array(); } else { $result['total'] = count($items); $result['results'] = $items; } return $result; }