/** * * @author Max Milbers * @param bool $setCart: set the Cart into Session * @param array $options : options for getSession * @param null $cartData: if not empty, do no get the cart data from session * @return null|VirtueMartCart */ public static function getCart($setCart = true, $options = array()) { //What does this here? for json stuff? if (!class_exists('JTable')) { require JPATH_VM_LIBRARIES . DS . 'joomla' . DS . 'database' . DS . 'table.php'; } // JTable::addIncludePath(JPATH_VM_ADMINISTRATOR . DS . 'tables'); if (empty(self::$_cart)) { $session = JFactory::getSession($options); $cartSession = $session->get('vmcart', 0, 'vm'); if (!empty($cartSession)) { $sessionCart = unserialize($cartSession); self::$_cart = new VirtueMartCart(); self::$_cart->products = $sessionCart->products; self::$_cart->vendorId = $sessionCart->vendorId; self::$_cart->lastVisitedCategoryId = $sessionCart->lastVisitedCategoryId; self::$_cart->virtuemart_shipmentmethod_id = $sessionCart->virtuemart_shipmentmethod_id; self::$_cart->virtuemart_paymentmethod_id = $sessionCart->virtuemart_paymentmethod_id; self::$_cart->automaticSelectedShipment = $sessionCart->automaticSelectedShipment; self::$_cart->automaticSelectedPayment = $sessionCart->automaticSelectedPayment; self::$_cart->BT = $sessionCart->BT; self::$_cart->ST = $sessionCart->ST; self::$_cart->tosAccepted = $sessionCart->tosAccepted; self::$_cart->customer_comment = base64_decode($sessionCart->customer_comment); self::$_cart->couponCode = $sessionCart->couponCode; self::$_cart->_triesValidateCoupon = $sessionCart->_triesValidateCoupon; self::$_cart->order_language = $sessionCart->order_language; self::$_cart->cartData = $sessionCart->cartData; self::$_cart->order_number = $sessionCart->order_number; self::$_cart->lists = $sessionCart->lists; //self::$_cart->pricesUnformatted = $sessionCart->pricesUnformatted; self::$_cart->pricesCurrency = $sessionCart->pricesCurrency; self::$_cart->paymentCurrency = $sessionCart->paymentCurrency; self::$_cart->_inCheckOut = $sessionCart->_inCheckOut; self::$_cart->_dataValidated = $sessionCart->_dataValidated; self::$_cart->_confirmDone = $sessionCart->_confirmDone; self::$_cart->STsameAsBT = $sessionCart->STsameAsBT; self::$_cart->customer_number = $sessionCart->customer_number; } } if (empty(self::$_cart)) { self::$_cart = new VirtueMartCart(); } if ($setCart == true) { self::$_cart->setPreferred(); self::$_cart->setCartIntoSession(); } return self::$_cart; }
/** * Get the cart from the session * * @author Max Milbers * @access public * @param array $cart the cart to store in the session */ public static function getCart($forceNew = false, $options = array(), $cartData = NULL) { //What does this here? for json stuff? if (!class_exists('JTable')) { require VMPATH_LIBS . DS . 'joomla' . DS . 'database' . DS . 'table.php'; } if (empty(self::$_cart) or $forceNew) { self::$_cart = new VirtueMartCart(); if (empty($cartData)) { $session = JFactory::getSession($options); $cartSession = $session->get('vmcart', 0, 'vm'); if (!empty($cartSession)) { $sessionCart = (object) json_decode($cartSession, true); if (empty($sessionCart->cartProductsData) or $sessionCart->_guest and $sessionCart->_guest != JFactory::getUser()->guest) { self::$_cart->loadCart($sessionCart); } } } else { $cartSession = $sessionCart = $cartData; } $userModel = VmModel::getModel('user'); self::$_cart->user = $userModel->getCurrentUser(); $lang = JFactory::getLanguage(); self::$_cart->order_language = $lang->getTag(); if (!empty($cartSession)) { if (isset($sessionCart->cartProductsData)) { self::$_cart->cartProductsData = $sessionCart->cartProductsData; self::$_cart->vendorId = $sessionCart->vendorId; self::$_cart->lastVisitedCategoryId = $sessionCart->lastVisitedCategoryId; self::$_cart->virtuemart_shipmentmethod_id = $sessionCart->virtuemart_shipmentmethod_id; self::$_cart->virtuemart_paymentmethod_id = $sessionCart->virtuemart_paymentmethod_id; self::$_cart->automaticSelectedShipment = $sessionCart->automaticSelectedShipment; self::$_cart->automaticSelectedPayment = $sessionCart->automaticSelectedPayment; self::$_cart->BT = $sessionCart->BT; self::$_cart->ST = $sessionCart->ST; self::$_cart->cartfields = $sessionCart->cartfields; self::$_cart->couponCode = $sessionCart->couponCode; self::$_cart->_triesValidateCoupon = $sessionCart->_triesValidateCoupon; self::$_cart->order_number = $sessionCart->order_number; self::$_cart->pricesCurrency = $sessionCart->pricesCurrency; self::$_cart->paymentCurrency = $sessionCart->paymentCurrency; self::$_cart->_guest = $sessionCart->_guest; self::$_cart->_inCheckOut = $sessionCart->_inCheckOut; self::$_cart->_inConfirm = $sessionCart->_inConfirm; self::$_cart->_dataValidated = $sessionCart->_dataValidated; self::$_cart->_confirmDone = $sessionCart->_confirmDone; self::$_cart->STsameAsBT = $sessionCart->STsameAsBT; self::$_cart->selected_shipto = $sessionCart->selected_shipto; self::$_cart->_fromCart = $sessionCart->_fromCart; self::$_cart->layout = $sessionCart->layout; self::$_cart->layoutPath = $sessionCart->layoutPath; self::$_cart->virtuemart_cart_id = $sessionCart->virtuemart_cart_id; } } self::$_cart->loadSetRenderBTSTAddress(); if (empty(self::$_cart->virtuemart_shipmentmethod_id) && !empty(self::$_cart->user->virtuemart_shipmentmethod_id)) { self::$_cart->virtuemart_shipmentmethod_id = self::$_cart->user->virtuemart_shipmentmethod_id; } if (empty(self::$_cart->virtuemart_paymentmethod_id) && !empty(self::$_cart->user->virtuemart_paymentmethod_id)) { self::$_cart->virtuemart_paymentmethod_id = self::$_cart->user->virtuemart_paymentmethod_id; } if ((!empty(self::$_cart->user->tos) || !empty(self::$_cart->BT['tos'])) && !VmConfig::get('agree_to_tos_onorder', 0)) { self::$_cart->BT['tos'] = 1; } if (!empty(self::$_cart->user->customer_number)) { self::$_cart->customer_number = self::$_cart->user->customer_number; } if (empty(self::$_cart->customer_number) or strpos(self::$_cart->customer_number, 'nonreg_') !== FALSE) { $firstName = empty(self::$_cart->BT['first_name']) ? '' : self::$_cart->BT['first_name']; $lastName = empty(self::$_cart->BT['last_name']) ? '' : self::$_cart->BT['last_name']; $email = empty(self::$_cart->BT['email']) ? '' : self::$_cart->BT['email']; self::$_cart->customer_number = 'nonreg_' . $firstName . $lastName . $email; } $multixcart = VmConfig::get('multixcart', 0); if (!empty($multixcart)) { if ($multixcart == 'byvendor' or self::$_cart->vendorId == 1) { $vendor = VmModel::getModel('vendor'); $vId = $vendor->getLoggedVendor(); if (!empty($vId) and $vId != 1) { self::$_cart->vendorId = $vId; } if (empty(self::$_cart->vendorId)) { self::$_cart->vendorId = 1; } } if ($multixcart == 'byselection') { self::$_cart->vendorId = vRequest::getInt('virtuemart_vendor_id', self::$_cart->vendorId); } } //We need to check for the amount of products. A cart in Multix mode using the first product // to determine the vendorId is a valid if there is no product in the cart if (count(self::$_cart->cartProductsData) > 0 and empty(self::$_cart->vendorId)) { self::$_cart->vendorId = 1; } } return self::$_cart; }
/** * Get the cart from the session * * @author Max Milbers * @access public * @param array $cart the cart to store in the session */ public static function getCart($setCart = true, $options = array()) { if (empty(self::$_cart)) { $session = JFactory::getSession($options); $cartSession = $session->get('vmcart', 0, 'vm'); self::$_cart = new VirtueMartCart(); if (!empty($cartSession)) { $sessionCart = unserialize($cartSession); foreach (self::$sessionKeys as $k) { self::$_cart->{$k} = $sessionCart->{$k}; } self::$_cart->customer_comment = base64_decode($sessionCart->customer_comment); } } if ($setCart == true) { self::$_cart->setPreferred(); self::$_cart->setCartIntoSession(); } return self::$_cart; }
/** * Get the cart from the session * * @author Max Milbers * @access public * @param array $cart the cart to store in the session */ public static function getCart($setCart = true, $options = array(), $cartData = NULL) { //What does this here? for json stuff? if (!class_exists('JTable')) { require JPATH_VM_LIBRARIES . DS . 'joomla' . DS . 'database' . DS . 'table.php'; } if (empty(self::$_cart)) { self::$_cart = new VirtueMartCart(); if (empty($cartData)) { $session = JFactory::getSession($options); $cartSession = $session->get('vmcart', 0, 'vm'); if (!empty($cartSession)) { $sessionCart = unserialize($cartSession); if (empty($sessionCart->cartProductsData) or $sessionCart->_guest and $sessionCart->_guest != JFactory::getUser()->guest) { self::$_cart->loadCart($sessionCart); } } } else { $cartSession = $cartData; $sessionCart = unserialize($cartSession); } $userModel = VmModel::getModel('user'); self::$_cart->user = $userModel->getCurrentUser(); $lang = JFactory::getLanguage(); self::$_cart->order_language = $lang->getTag(); if (!empty($cartSession)) { if (isset($sessionCart->cartProductsData)) { self::$_cart->cartProductsData = $sessionCart->cartProductsData; self::$_cart->vendorId = $sessionCart->vendorId; self::$_cart->lastVisitedCategoryId = $sessionCart->lastVisitedCategoryId; self::$_cart->virtuemart_shipmentmethod_id = $sessionCart->virtuemart_shipmentmethod_id; self::$_cart->virtuemart_paymentmethod_id = $sessionCart->virtuemart_paymentmethod_id; self::$_cart->automaticSelectedShipment = $sessionCart->automaticSelectedShipment; self::$_cart->automaticSelectedPayment = $sessionCart->automaticSelectedPayment; self::$_cart->BT = $sessionCart->BT; self::$_cart->ST = $sessionCart->ST; self::$_cart->cartfields = $sessionCart->cartfields; self::$_cart->couponCode = $sessionCart->couponCode; self::$_cart->_triesValidateCoupon = $sessionCart->_triesValidateCoupon; self::$_cart->order_number = $sessionCart->order_number; self::$_cart->pricesCurrency = $sessionCart->pricesCurrency; self::$_cart->paymentCurrency = $sessionCart->paymentCurrency; self::$_cart->_guest = $sessionCart->_guest; self::$_cart->_inCheckOut = $sessionCart->_inCheckOut; self::$_cart->_inConfirm = $sessionCart->_inConfirm; self::$_cart->_dataValidated = $sessionCart->_dataValidated; self::$_cart->_confirmDone = $sessionCart->_confirmDone; self::$_cart->STsameAsBT = $sessionCart->STsameAsBT; self::$_cart->selected_shipto = $sessionCart->selected_shipto; self::$_cart->_fromCart = $sessionCart->_fromCart; } } self::$_cart->loadSetRenderBTSTAddress(); if (empty(self::$_cart->virtuemart_shipmentmethod_id) && !empty(self::$_cart->user->virtuemart_shipmentmethod_id)) { self::$_cart->virtuemart_shipmentmethod_id = self::$_cart->user->virtuemart_shipmentmethod_id; } if (empty(self::$_cart->virtuemart_paymentmethod_id) && !empty(self::$_cart->user->virtuemart_paymentmethod_id)) { self::$_cart->virtuemart_paymentmethod_id = self::$_cart->user->virtuemart_paymentmethod_id; } if ((!empty(self::$_cart->user->agreed) || !empty(self::$_cart->BT['agreed'])) && !VmConfig::get('agree_to_tos_onorder', 0)) { self::$_cart->BT['tos'] = 1; } //if(empty($this->customer_number) or ($this->user->virtuemart_user_id!=0 and strpos($this->customer_number,'nonreg_')!==FALSE ) ){ if (self::$_cart->user->virtuemart_user_id != 0 and empty(self::$_cart->customer_number) or strpos(self::$_cart->customer_number, 'nonreg_') !== FALSE) { self::$_cart->customer_number = $userModel->getCustomerNumberById(); } if (empty(self::$_cart->customer_number) or strpos(self::$_cart->customer_number, 'nonreg_') !== FALSE) { $firstName = empty(self::$_cart->BT['first_name']) ? '' : self::$_cart->BT['first_name']; $lastName = empty(self::$_cart->BT['last_name']) ? '' : self::$_cart->BT['last_name']; $email = empty(self::$_cart->BT['email']) ? '' : self::$_cart->BT['email']; self::$_cart->customer_number = 'nonreg_' . $firstName . $lastName . $email; } $multixcart = VmConfig::get('multixcart', 0); if (!empty($multixcart)) { if ($multixcart == 'byvendor' and empty(self::$_cart->vendorId) or self::$_cart->vendorId == 1) { $vendor = VmModel::getModel('vendor'); self::$_cart->vendorId = $vendor->getLoggedVendor(); if (empty(self::$_cart->vendorId)) { self::$_cart->vendorId = 1; } } if ($multixcart == 'byselection') { self::$_cart->vendorId = vRequest::get('virtuemart_vendor_id', 1); } } else { self::$_cart->vendorId = 1; } vmdebug('getCart $_cart->vendorId', self::$_cart->vendorId); } return self::$_cart; }