function step3() { $checkout = JModelLegacy::getInstance('checkout', 'jshop'); $checkout->checkStep(3); JPluginHelper::importPlugin('jshoppingcheckout'); $dispatcher = JDispatcher::getInstance(); $dispatcher->trigger('onLoadCheckoutStep3', array()); $jshopConfig = JSFactory::getConfig(); $session = JFactory::getSession(); $cart = JModelLegacy::getInstance('cart', 'jshop'); $cart->load(); $user = JFactory::getUser(); if ($user->id) { $adv_user = JSFactory::getUserShop(); } else { $adv_user = JSFactory::getUserShopGuest(); } appendPathWay(_JSHOP_CHECKOUT_PAYMENT); $seo = JTable::getInstance("seo", "jshop"); $seodata = $seo->loadData("checkout-payment"); if ($seodata->title == "") { $seodata->title = _JSHOP_CHECKOUT_PAYMENT; } setMetaData($seodata->title, $seodata->keyword, $seodata->description); $checkout_navigator = $this->_showCheckoutNavigation(3); if ($jshopConfig->show_cart_all_step_checkout) { $small_cart = $this->_showSmallCart(3); } else { $small_cart = ''; } if ($jshopConfig->without_payment) { $checkout->setMaxStep(4); $this->setRedirect(SEFLink('index.php?option=com_jshopping&controller=checkout&task=step4', 0, 1, $jshopConfig->use_ssl)); return 0; } $paymentmethod = JTable::getInstance('paymentmethod', 'jshop'); $shipping_id = $cart->getShippingId(); $all_payment_methods = $paymentmethod->getAllPaymentMethods(1, $shipping_id); $i = 0; $paym = array(); foreach ($all_payment_methods as $pm) { $paym[$i] = new stdClass(); $paymentsysdata = $paymentmethod->getPaymentSystemData($pm->payment_class); if ($paymentsysdata->paymentSystem) { $paym[$i]->existentcheckform = 1; $paym[$i]->payment_system = $paymentsysdata->paymentSystem; } else { $paym[$i]->existentcheckform = 0; } $paym[$i]->name = $pm->name; $paym[$i]->payment_id = $pm->payment_id; $paym[$i]->payment_class = $pm->payment_class; $paym[$i]->payment_description = $pm->description; $paym[$i]->price_type = $pm->price_type; $paym[$i]->image = $pm->image; $paym[$i]->price_add_text = ''; if ($pm->price_type == 2) { $paym[$i]->calculeprice = $pm->price; if ($paym[$i]->calculeprice != 0) { if ($paym[$i]->calculeprice > 0) { $paym[$i]->price_add_text = '+' . $paym[$i]->calculeprice . '%'; } else { $paym[$i]->price_add_text = $paym[$i]->calculeprice . '%'; } } } else { $paym[$i]->calculeprice = getPriceCalcParamsTax($pm->price * $jshopConfig->currency_value, $pm->tax_id, $cart->products); if ($paym[$i]->calculeprice != 0) { if ($paym[$i]->calculeprice > 0) { $paym[$i]->price_add_text = '+' . formatprice($paym[$i]->calculeprice); } else { $paym[$i]->price_add_text = formatprice($paym[$i]->calculeprice); } } } $s_payment_method_id = $cart->getPaymentId(); if ($s_payment_method_id == $pm->payment_id) { $params = $cart->getPaymentParams(); } else { $params = array(); } $parseString = new parseString($pm->payment_params); $pmconfig = $parseString->parseStringToParams(); if ($paym[$i]->existentcheckform) { ob_start(); $paym[$i]->payment_system->showPaymentForm($params, $pmconfig); $paym[$i]->form = ob_get_contents(); ob_get_clean(); } else { $paym[$i]->form = ""; } $i++; } $s_payment_method_id = $cart->getPaymentId(); $active_payment = intval($s_payment_method_id); if (!$active_payment) { $list_payment_id = array(); foreach ($paym as $v) { $list_payment_id[] = $v->payment_id; } if (in_array($adv_user->payment_id, $list_payment_id)) { $active_payment = $adv_user->payment_id; } } if (!$active_payment) { if (isset($paym[0])) { $active_payment = $paym[0]->payment_id; } } if ($jshopConfig->hide_payment_step) { $first_payment = $paym[0]->payment_class; if (!$first_payment) { JError::raiseWarning("", _JSHOP_ERROR_PAYMENT); return 0; } $this->setRedirect(SEFLink('index.php?option=com_jshopping&controller=checkout&task=step3save&payment_method=' . $first_payment, 0, 1, $jshopConfig->use_ssl)); return 0; } $view_name = "checkout"; $view_config = array("template_path" => JPATH_COMPONENT . "/templates/" . $jshopConfig->template . "/" . $view_name); $view = $this->getView($view_name, getDocumentType(), '', $view_config); $view->setLayout("payments"); $view->assign('payment_methods', $paym); $view->assign('active_payment', $active_payment); $view->assign('checkout_navigator', $checkout_navigator); $view->assign('small_cart', $small_cart); $view->assign('action', SEFLink('index.php?option=com_jshopping&controller=checkout&task=step3save', 0, 0, $jshopConfig->use_ssl)); $dispatcher->trigger('onBeforeDisplayCheckoutStep3View', array(&$view)); $view->display(); }
/** * get config */ function getConfigs() { $parseString = new parseString($this->payment_params); $params = $parseString->parseStringToParams(); return $params; }
/** * добавляет область выборат способов оплаты */ public function addPaymentMethods() { $cart = JSFactory::getModel('cart', 'jshop'); $cart->load(); $paymentmethod = JSFactory::getTable('paymentmethod', 'jshop'); $shipping_id = $cart->getShippingId(); $all_payment_methods = $paymentmethod->getAllPaymentMethods(1, $shipping_id); $i = 0; $paym = array(); foreach ($all_payment_methods as $pm) { $paym[$i] = new stdClass(); if ($pm->scriptname != '') { $scriptname = $pm->scriptname; } else { $scriptname = $pm->payment_class; } $paymentmethod->load($pm->payment_id); $paymentsysdata = $paymentmethod->getPaymentSystemData($scriptname); if ($paymentsysdata->paymentSystem) { $paym[$i]->existentcheckform = 1; $paym[$i]->payment_system = $paymentsysdata->paymentSystem; } else { $paym[$i]->existentcheckform = 0; } $paym[$i]->name = $pm->name; $paym[$i]->payment_id = $pm->payment_id; $paym[$i]->payment_class = $pm->payment_class; $paym[$i]->scriptname = $pm->scriptname; $paym[$i]->payment_description = $pm->description; $paym[$i]->price_type = $pm->price_type; $paym[$i]->image = $pm->image; $paym[$i]->price_add_text = ''; if ($pm->price_type == 2) { $paym[$i]->calculeprice = $pm->price; if ($paym[$i]->calculeprice != 0) { if ($paym[$i]->calculeprice > 0) { $paym[$i]->price_add_text = '+' . $paym[$i]->calculeprice . '%'; } else { $paym[$i]->price_add_text = $paym[$i]->calculeprice . '%'; } } } else { $paym[$i]->calculeprice = getPriceCalcParamsTax($pm->price * $jshopConfig->currency_value, $pm->tax_id, $cart->products); if ($paym[$i]->calculeprice != 0) { if ($paym[$i]->calculeprice > 0) { $paym[$i]->price_add_text = '+' . formatprice($paym[$i]->calculeprice); } else { $paym[$i]->price_add_text = formatprice($paym[$i]->calculeprice); } } } $s_payment_method_id = $cart->getPaymentId(); if ($s_payment_method_id == $pm->payment_id) { $params = $cart->getPaymentParams(); } else { $params = array(); } $parseString = new parseString($pm->payment_params); $pmconfig = $parseString->parseStringToParams(); if ($paym[$i]->existentcheckform) { $paym[$i]->form = $paymentmethod->loadPaymentForm($paym[$i]->payment_system, $params, $pmconfig); } else { $paym[$i]->form = ""; } $i++; } $s_payment_method_id = $cart->getPaymentId(); $active_payment = intval($s_payment_method_id); if (!$active_payment) { $list_payment_id = array(); foreach ($paym as $v) { $list_payment_id[] = $v->payment_id; } if (in_array($adv_user->payment_id, $list_payment_id)) { $active_payment = $adv_user->payment_id; } } if (!$active_payment) { if (isset($paym[0])) { $active_payment = $paym[0]->payment_id; } } $html = ''; $html .= '<h2>' . _JSHOP_STEP_ORDER_3 . '</h2>'; $html .= '<div id="table_payments" class="form-inline">'; $payment_class = ""; foreach ($paym as $payment) { if ($active_payment == $payment->payment_id) { $payment_class = $payment->payment_class; } $html .= '<div class="name">'; if ($active_payment == $payment->payment_id) { $checked = 'checked'; } else { $checked = ''; } $html .= '<input type="radio" name="payment_method" id="payment_method_' . $payment->payment_id . '" onclick="showPaymentForm(\'' . $payment->payment_class . '\')" value="' . $payment->payment_class . '" ' . $checked . ' />'; $html .= ' <label for = "payment_method_' . $payment->payment_id . '">'; if ($payment->image) { $html .= '<span class="payment_image"><img src="' . $payment->image . '" alt="' . htmlspecialchars($payment->name) . '" /></span>'; } $html .= '<b>' . $payment->name . '</b>'; if ($payment->price_add_text != '') { $html .= '<span class="payment_price">(' . $payment->price_add_text . ')</span>'; } $html .= '</label>'; $html .= ''; $html .= ' </div>'; $html .= ''; } $html .= ' </div>'; $html .= ''; return $html; }
public function getCheckoutListPayments() { $jshopConfig = JSFactory::getConfig(); $cart = $this->getCart(); $paymentmethod = JSFactory::getTable('paymentmethod', 'jshop'); $shipping_id = $cart->getShippingId(); $all_payment_methods = $paymentmethod->getAllPaymentMethods(1, $shipping_id); $i = 0; $paym = array(); foreach ($all_payment_methods as $pm) { $paym[$i] = new stdClass(); if ($pm->scriptname != '') { $scriptname = $pm->scriptname; } else { $scriptname = $pm->payment_class; } $paymentmethod->load($pm->payment_id); $paymentsysdata = $paymentmethod->getPaymentSystemData($scriptname); if ($paymentsysdata->paymentSystem) { $paym[$i]->existentcheckform = 1; $paym[$i]->payment_system = $paymentsysdata->paymentSystem; } else { $paym[$i]->existentcheckform = 0; } $paym[$i]->name = $pm->name; $paym[$i]->payment_id = $pm->payment_id; $paym[$i]->payment_class = $pm->payment_class; $paym[$i]->scriptname = $pm->scriptname; $paym[$i]->payment_description = $pm->description; $paym[$i]->price_type = $pm->price_type; $paym[$i]->image = $pm->image; $paym[$i]->price_add_text = ''; if ($pm->price_type == 2) { $paym[$i]->calculeprice = $pm->price; if ($paym[$i]->calculeprice != 0) { if ($paym[$i]->calculeprice > 0) { $paym[$i]->price_add_text = '+' . $paym[$i]->calculeprice . '%'; } else { $paym[$i]->price_add_text = $paym[$i]->calculeprice . '%'; } } } else { $paym[$i]->calculeprice = getPriceCalcParamsTax($pm->price * $jshopConfig->currency_value, $pm->tax_id, $cart->products); if ($paym[$i]->calculeprice != 0) { if ($paym[$i]->calculeprice > 0) { $paym[$i]->price_add_text = '+' . formatprice($paym[$i]->calculeprice); } else { $paym[$i]->price_add_text = formatprice($paym[$i]->calculeprice); } } } $s_payment_method_id = $cart->getPaymentId(); if ($s_payment_method_id == $pm->payment_id) { $params = $cart->getPaymentParams(); } else { $params = array(); } $parseString = new parseString($pm->payment_params); $pmconfig = $parseString->parseStringToParams(); if ($paym[$i]->existentcheckform) { $paym[$i]->form = $paymentmethod->loadPaymentForm($paym[$i]->payment_system, $params, $pmconfig); } else { $paym[$i]->form = ""; } $i++; } return $paym; }
function save() { $payment_id = JRequest::getInt("payment_id"); JPluginHelper::importPlugin('jshoppingadmin'); $dispatcher = JDispatcher::getInstance(); $db = JFactory::getDBO(); $payment = JTable::getInstance('paymentMethod', 'jshop'); $post = JRequest::get("post"); if (!isset($post['payment_publish'])) { $post['payment_publish'] = 0; } if (!isset($post['show_descr_in_email'])) { $post['show_descr_in_email'] = 0; } $post['price'] = saveAsPrice($post['price']); $post['payment_class'] = JRequest::getCmd("payment_class"); if (!$post['payment_id']) { $post['payment_type'] = 1; } $dispatcher->trigger('onBeforeSavePayment', array(&$post)); $_lang = $this->getModel("languages"); $languages = $_lang->getAllLanguages(1); foreach ($languages as $lang) { $post['description_' . $lang->language] = JRequest::getVar('description' . $lang->id, '', 'post', "string", 2); } $payment->bind($post); $_payments = $this->getModel("payments"); if (!$payment->payment_id) { $payment->payment_ordering = $_payments->getMaxOrdering() + 1; } if (isset($post['pm_params'])) { $parseString = new parseString($post['pm_params']); $payment->payment_params = $parseString->splitParamsToString(); } if (!$payment->check()) { JError::raiseWarning("", $payment->getError()); $this->setRedirect("index.php?option=com_jshopping&controller=payments&task=edit&payment_id=" . $payment->payment_id); return 0; } $payment->store(); $dispatcher->trigger('onAfterSavePayment', array(&$payment)); if ($this->getTask() == 'apply') { $this->setRedirect("index.php?option=com_jshopping&controller=payments&task=edit&payment_id=" . $payment->payment_id); } else { $this->setRedirect("index.php?option=com_jshopping&controller=payments"); } }
function step3(){ $this->_check(3); $jshopConfig = &JSFactory::getConfig(); $session =& JFactory::getSession(); $cart = &JModel::getInstance('cart', 'jshop'); $cart->load(); $user = &JFactory::getUser(); if ($user->id){ $adv_user = &JSFactory::getUserShop(); }else{ $adv_user = &JSFactory::getUserShopGuest(); } appendPathWay(_JSHOP_CHECKOUT_PAYMENT); $seo = &JTable::getInstance("seo", "jshop"); $seodata = $seo->loadData("checkout-payment"); if ($seodata->title==""){ $seodata->title = _JSHOP_CHECKOUT_PAYMENT; } setMetaData($seodata->title, $seodata->keyword, $seodata->description); $this->_showCheckoutNavigation(3); if ($jshopConfig->show_cart_all_step_checkout){ $this->_showSmallCart(3); } if ($jshopConfig->without_payment){ $this->_setMaxStep(4); $cart->setPaymentId(0); $cart->setPaymentParams(""); $cart->setPaymentPrice(0); $this->setRedirect(SEFLink('index.php?option=com_jshopping&controller=checkout&task=step4',0,1,$jshopConfig->use_ssl)); return 0; } $paymentmethod = &JTable::getInstance('paymentmethod', 'jshop'); $all_payment_methods = jshopPaymentMethod::getAllPaymentMethods(); $i = 0; $paym = array(); foreach ($all_payment_methods as $pm) { if (file_exists($jshopConfig->path . 'payments/'.$pm->payment_class."/".$pm->payment_class.'.php')){ require_once ($jshopConfig->path . 'payments/'.$pm->payment_class."/".$pm->payment_class.'.php'); $paym[$i]->existentcheckform = 1; }else{ $paym[$i]->existentcheckform = 0; } $paym[$i]->name = $pm->name; $paym[$i]->payment_id = $pm->payment_id; $paym[$i]->payment_class = $pm->payment_class; $paym[$i]->payment_description = $pm->description; $paym[$i]->price_type = $pm->price_type; if ($pm->price_type==2){ $paym[$i]->calculeprice = $pm->price; }else{ $paym[$i]->calculeprice = getPriceCalcParamsTax($pm->price * $jshopConfig->currency_value, $pm->tax_id); } $s_payment_method_id = $cart->getPaymentId(); if ($s_payment_method_id == $pm->payment_id){ $params = $cart->getPaymentParams(); }else{ $params = array(); } $parseString = new parseString($pm->payment_params); $pmconfig = $parseString->parseStringToParams(); if ($paym[$i]->existentcheckform){ ob_start(); call_user_func(array($pm->payment_class, 'showPaymentForm'), $params, $pmconfig); $paym[$i]->form = ob_get_contents(); ob_get_clean(); }else{ $paym[$i]->form = ""; } $i++; } $s_payment_method_id = $cart->getPaymentId(); $active_payment = intval($s_payment_method_id); if (!$active_payment){ $list_payment_id = array(); foreach($paym as $v){ $list_payment_id[] = $v->payment_id; } if (in_array($adv_user->payment_id, $list_payment_id)) $active_payment = $adv_user->payment_id; } if (!$active_payment){ if (isset($paym[0])){ $active_payment = $paym[0]->payment_id; } } if ($jshopConfig->hide_payment_step){ $first_payment = $paym[0]->payment_class; if (!$first_payment){ JError::raiseWarning("", _JSHOP_ERROR_PAYMENT); return 0; } $this->setRedirect(SEFLink('index.php?option=com_jshopping&controller=checkout&task=step3save&payment_method='.$first_payment,0,1,$jshopConfig->use_ssl)); return 0; } JPluginHelper::importPlugin('jshoppingcheckout'); $dispatcher =& JDispatcher::getInstance(); $dispatcher->trigger( 'onBeforeDisplayCheckoutStep3', array(&$adv_user, &$paym) ); $view_name = "checkout"; $view_config = array("template_path"=>JPATH_COMPONENT."/templates/".$jshopConfig->template."/".$view_name); $view = &$this->getView($view_name, 'html', '', $view_config); $view->setLayout("payments"); $view->assign('payment_methods', $paym); $view->assign('active_payment', $active_payment); $view->assign('action', SEFLink('index.php?option=com_jshopping&controller=checkout&task=step3save', 0, 0, $jshopConfig->use_ssl)); $view->display(); }