public function display($tpl = null) { $app = JFactory::getApplication(); $user = JFactory::getUser(); $this->params = Djcatalog2Helper::getParams(); $price_auth = $this->params->get('price_restrict', '0') == '1' && $user->guest ? false : true; if (!$price_auth) { $return_url = base64_encode(DJCatalogHelperRoute::getCartRoute()); $app->redirect(JRoute::_('index.php?option=com_users&view=login&return=' . $return_url, false), JText::_('COM_DJCATALOG2_PLEASE_LOGIN')); return true; } $cart_items = $app->getUserState('com_djcatalog2.cart.items', array()); $this->basket = Djcatalog2HelperCart::getInstance(); $this->items = $this->basket->getItems(); if (empty($this->items)) { $app->redirect(JUri::base(), JText::_('COM_DJCATALOG2_CART_IS_EMPTY')); return true; } $user_profile = Djcatalog2Helper::getUserProfile(); $user = Djcatalog2Helper::getUser(); if (empty($user_profile) || empty($user_profile->id)) { $return_url = base64_encode(DJCatalogHelperRoute::getCheckoutRoute()); $app->setUserState('com_users.edit.profile.redirect', DJCatalogHelperRoute::getCheckoutRoute()); $app->redirect(JRoute::_('index.php?option=com_users&view=profile&layout=edit&return=' . $return_url, false), JText::_('COM_DJCATALOG2_PLEASE_FILLIN_BILLING_DETAILS')); return true; } $this->user_profile = $user_profile; $this->user = $user; $this->total = $this->basket->getTotal(); // Check for errors. if (count($errors = $this->get('Errors'))) { JError::raiseError(500, implode("\n", $errors)); return false; } $this->_prepareDocument(); parent::display($tpl); }
protected function allowCheckout() { $app = JFactory::getApplication(); $user_profile = Djcatalog2Helper::getUserProfile(); $user = Djcatalog2Helper::getUser(); if ($user->guest) { $return_url = base64_encode(DJCatalogHelperRoute::getCheckoutRoute()); $app->redirect(JRoute::_('index.php?option=com_users&view=login&return=' . $return_url, false), JText::_('COM_DJCATALOG2_PLEASE_LOGIN')); return false; } if (empty($user_profile) || empty($user_profile->id)) { $return_url = base64_encode(DJCatalogHelperRoute::getCheckoutRoute()); $app->setUserState('com_users.edit.profile.redirect', DJCatalogHelperRoute::getCheckoutRoute()); $app->redirect(JRoute::_('index.php?option=com_users&view=profile&layout=edit&return=' . $return_url, false), JText::_('COM_DJCATALOG2_PLEASE_FILLIN_BILLING_DETAILS')); return false; } $basket = Djcatalog2HelperCart::getInstance(true); $basket->recalculate(); if (empty($basket) || !$basket->getItems()) { $app->redirect(JUri::base(), JText::_('COM_DJCATALOG2_CART_IS_EMPTY')); return false; } return true; }
public function display($tpl = null) { $app = JFactory::getApplication(); $user = JFactory::getUser(); $this->params = Djcatalog2Helper::getParams(); $model = JModelLegacy::getInstance('Order', 'Djcatalog2Model', array()); $this->setModel($model, true); $this->model = $this->getModel(); if ($this->params->get('cart_enabled', '1') != '1') { throw new Exception(JText::_('JERROR_ALERTNOAUTHOR'), 403); } $auth = $this->params->get('cart_registered', '1') == '1' && $user->guest ? false : true; if (!$auth) { $return_url = base64_encode(DJCatalogHelperRoute::getCheckoutRoute()); $app->redirect(JRoute::_('index.php?option=com_users&view=login&return=' . $return_url, false), JText::_('COM_DJCATALOG2_PLEASE_LOGIN')); return true; } $cart_items = $app->getUserState('com_djcatalog2.cart.items', array()); $this->basket = Djcatalog2HelperCart::getInstance(); foreach ($this->basket->items as $item) { if ($item->_prices['base']['display'] == 0.0 || !$item->onstock || floatval($item->stock) == 0.0) { $app->redirect(JRoute::_(DJCatalogHelperRoute::getCartRoute(), false), JText::sprintf('COM_DJCATALOG2_CHECKOUT_EMPTY_PRICES', JRoute::_('index.php?option=com_djcatalog2&task=cart.clearfree'))); return true; } } $this->items = $this->basket->getItems(); if (empty($this->items)) { $app->redirect(JUri::base(), JText::_('COM_DJCATALOG2_CART_IS_EMPTY')); return true; } if (count($this->items)) { JModelLegacy::addIncludePath(JPATH_BASE . DS . 'components' . DS . 'com_djcatalog2' . DS . 'models', 'DJCatalog2Model'); $itemsModel = JModelLegacy::getInstance('Items', 'Djcatalog2Model', array('ignore_request' => true)); $parents = array(); foreach ($this->items as $item) { if ($item->parent_id > 0) { $parents[] = $item->parent_id; } } if (count($parents) > 0) { $state = $itemsModel->getState(); $itemsModel->setState('list.start', 0); $itemsModel->setState('list.limit', 0); $itemsModel->setState('filter.catalogue', false); $itemsModel->setState('list.ordering', 'i.name'); $itemsModel->setState('list.direction', 'asc'); $itemsModel->setState('filter.parent', '*'); $itemsModel->setState('filter.state', '3'); $itemsModel->setState('filter.item_ids', $parents); $parentItems = $itemsModel->getItems(); foreach ($this->items as $id => $item) { if ($item->parent_id > 0 && isset($parentItems[$item->parent_id])) { $this->items[$id]->parent = $parentItems[$item->parent_id]; } else { $this->items[$id]->parent = false; } } } } $user_profile = Djcatalog2Helper::getUserProfile(); $user = Djcatalog2Helper::getUser(); // Check for errors. if (count($errors = $this->get('Errors'))) { JError::raiseError(500, implode("\n", $errors)); return false; } $this->form = $this->get('Form'); $data = JArrayHelper::fromObject($user_profile, false); $postOrder = (array) $app->getUserState('com_djcatalog2.order.data', array()); if (!empty($postOrder)) { foreach ($postOrder as $k => $v) { $data[$k] = $v; } } $this->user_valid = $this->model->validate($this->form, array('djcatalog2profile' => $data), 'djcatalog2profile'); $this->billing_valid = $this->model->validate($this->form, array('djcatalog2billing' => $data), 'djcatalog2billing'); $dispatcher = JEventDispatcher::getInstance(); JPluginHelper::importPlugin('djcatalog2payment'); JPluginHelper::importPlugin('djcatalog2delivery'); $deliveryMethods = $model->getDeliveryMethods(); $paymentMethods = $model->getPaymentMethods('*'); $deliveryRes = array(); $paymentRes = array(); foreach ($deliveryMethods as &$deliveryObject) { $params = new JRegistry(); $params->loadString($deliveryObject->params, 'JSON'); $deliveryObject->params = $params; $deliveryRes[$deliveryObject->id] = $dispatcher->trigger('onDJC2CheckoutDetailsDisplay', array('com_djcatalog2.checkout.delivery', $deliveryObject)); } unset($deliveryObject); foreach ($paymentMethods as &$paymentObject) { $params = new JRegistry(); $params->loadString($paymentObject->params, 'JSON'); $paymentObject->params = $params; $paymentRes[$paymentObject->id] = $dispatcher->trigger('onDJC2CheckoutDetailsDisplay', array('com_djcatalog2.checkout.payment', $paymentObject)); } unset($paymentObject); $this->delivery_info = $deliveryRes; $this->payment_info = $paymentRes; $this->user_profile = $user_profile; $this->user = $user; $this->total = $this->basket->getTotal(); $this->product_total = $this->basket->getProductTotal(); $this->_prepareDocument(); parent::display($tpl); }
protected function allowCheckout() { $app = JFactory::getApplication(); $user_profile = Djcatalog2Helper::getUserProfile(); $user = Djcatalog2Helper::getUser(); $params = JComponentHelper::getParams('com_djcatalog2'); // TODO: add order cart parameter if ($params->get('cart_query_enabled', '1') != '1') { throw new Exception(403, JText::_('JERROR_ALERTNOAUTHOR')); } // TODO: allow guest orders - add new paramater $auth = $params->get('cart_query_registered', '1') == '1' && $user->guest ? false : true; if (!$auth) { $return_url = base64_encode(DJCatalogHelperRoute::getCheckoutRoute()); $app->redirect(JRoute::_('index.php?option=com_users&view=login&return=' . $return_url, false), JText::_('COM_DJCATALOG2_PLEASE_LOGIN')); return false; } $basket = Djcatalog2HelperCart::getInstance(true); $basket->recalculate(); if (empty($basket) || !$basket->getItems()) { $app->redirect(JUri::base(), JText::_('COM_DJCATALOG2_CART_IS_EMPTY')); return false; } foreach ($basket->items as $item) { if ($item->_prices['base']['display'] == 0.0) { $app->redirect(JRoute::_(DJCatalogHelperRoute::getCartRoute(), false), JText::sprintf('COM_DJCATALOG2_CHECKOUT_EMPTY_PRICES', JRoute::_('index.php?option=com_djcatalog2&task=cart.clearfree'))); return true; } } return true; }
<h2><?php echo JText::_('COM_DJCATALOG2_ORDER_ITEMS'); ?> </h2> <div class="djc_cart djc_cart_checkout djc_clearfix"> <?php echo $this->loadTemplate('table'); ?> </div> <?php } ?> <div class="djc_checkout_form"> <form action="<?php echo JRoute::_(DJCatalogHelperRoute::getCheckoutRoute()); ?> " method="post" class="form"> <fieldset class="djc_checkout_notes"> <div class="control-group"> <div class="control-label"> <label for="customer_note"><?php echo JText::_('COM_DJCATALOG2_ORDER_NOTES'); ?> </label> </div> <div class="controls"> <textarea id="customer_note" rows="5" cols="40" name="customer_note" class="inputbox input input-large"></textarea> </div> </div>