示例#1
0
 public function onLoginUser($user, $options)
 {
     $app = JFactory::getApplication();
     if ($app->getName() != 'site') {
         return;
     }
     if (!$this->_exits_q2c()) {
         return;
     }
     $db = JFactory::getDBO();
     $session = JFactory::getSession();
     $path = JPATH_SITE . '/components/com_quick2cart/helper.php';
     if (!class_exists('comquick2cartHelper')) {
         JLoader::register('comquick2cartHelper', $path);
         JLoader::load('comquick2cartHelper');
     }
     $comquick2cartHelper = new comquick2cartHelper();
     $currentsession = $session->getId();
     $old_sessionid = $session->get('old_sessionid');
     $old_sessionid = $currentsession;
     $user_id = intval(JUserHelper::getUserId($user['username']));
     $oldcartid = $comquick2cartHelper->getcartidForuser($user_id);
     //gives last cart id
     $guestcart_id = $comquick2cartHelper->guestCartId($old_sessionid);
     if ($oldcartid) {
         if ($guestcart_id) {
             /* condition no 11:: IF GUEST CART_id AND USER_CART_ID  BOTH FOUND THEN	delete rec with user_id*/
             $query = "Select cart_id FROM #__kart_cart WHERE user_id='{$user_id}' ORDER BY last_updated DESC";
             $db->setQuery($query);
             $cart_ids = $db->loadColumn();
             if (!empty($cart_ids)) {
                 $comquick2cartHelper->deleteCartItemRec($cart_ids);
             }
             $q = "DELETE FROM #__kart_cart WHERE user_id=" . $user_id;
             //." And `session_id` !='".$old_sessionid."' ";
             $db->setQuery($q);
             $db->execute();
             // update cartid from 0 to 1
             $row = new stdClass();
             $row->cart_id = $guestcart_id;
             $row->session_id = $old_sessionid;
             $row->user_id = $user_id;
             //intval(JUserHelper::getUserId($user['username']));
             $row->last_updated = date("Y-m-d H:i:s");
             if (!$db->updateObject('#__kart_cart', $row, 'cart_id')) {
                 echo $db->stderr();
                 return false;
             }
         } else {
             /*  condition no 10::IF USER_CART_ID   and GUST_CART_ID NOT FOUND THEN
             				delete all entry Except last*/
             $query = "Select cart_id FROM #__kart_cart WHERE user_id='{$user_id}' ORDER BY last_updated DESC";
             $db->setQuery($query);
             $cart_ids = $db->loadColumn();
             unset($cart_ids[0]);
             if (!empty($cart_ids)) {
                 $comquick2cartHelper->deleteCartItemRec($cart_ids);
             }
             $q = "DELETE FROM #__kart_cart WHERE user_id=" . $user_id . " And `cart_id` !={$oldcartid} ";
             // 	AND `session_id` !='".$old_sessionid."' ";
             $db->setQuery($q);
             $db->execute();
         }
     } else {
         /* condition no 01:: IF USER_ID_CART NOT FOUND  AND GUEST CART IS PRESENT THEN 	Update user id (0-> id)entry in cart table aginst oldsession*/
         if ($guestcart_id) {
             $row = new stdClass();
             $row->cart_id = $guestcart_id;
             $row->session_id = $old_sessionid;
             $row->user_id = $user_id;
             //intval(JUserHelper::getUserId($user['username']));
             $row->last_updated = date("Y-m-d H:i:s");
             //print"<pre>";print_r($row);
             if (!$db->updateObject('#__kart_cart', $row, 'cart_id')) {
                 echo $db->stderr();
                 return false;
             }
         }
     }
 }