Exemplo n.º 1
0
 static function updateCart($id, $arFields = false)
 {
     if (!class_exists("CCatalogSku")) {
         return false;
     }
     $api_key = COption::GetOptionString(self::$MODULE_ID, "tracker_code", '');
     if (!$api_key) {
         return;
     }
     if ($arFields && !isset($arFields["PRODUCT_ID"]) && !isset($arFields["DELAY"])) {
         //just viewving
         return;
     }
     if ($arFields && isset($arFields["ORDER_ID"])) {
         // purchasing
         return;
     }
     $basket = CSaleBasket::GetByID($id);
     $user_id = $basket["FUSER_ID"];
     $items = array();
     $orders = CSaleBasket::GetList(array(), array("FUSER_ID" => $basket["FUSER_ID"], "ORDER_ID" => "NULL"), false, false, array());
     $i = 0;
     while ($order = $orders->Fetch()) {
         if (!$arFields) {
             //deleting
             if ($order["ID"] == $id) {
                 continue;
             }
         }
         $item["product_id"] = $order["PRODUCT_ID"];
         $item["qnt"] = $order["QUANTITY"];
         $item["price"] = $order["PRICE"];
         $items[$i . ""] = $item;
         $i++;
     }
     global $USER;
     $user_id = false;
     if ($USER->GetID()) {
         $user_id = $USER->GetID();
     }
     $visitor_uid = false;
     $visitor_info = false;
     $visitor_info = self::getVisitorInfo($user_id);
     if ($visitor_info || $user_id !== FALSE) {
         $visitor_uid = $user_id;
     }
     $guest_uid = self::getUid($visitor_uid);
     $tracker = new ConveadTracker($api_key, SITE_SERVER_NAME, $guest_uid, $visitor_uid, $visitor_info, false, SITE_SERVER_NAME);
     $result = $tracker->eventUpdateCart($items);
     return true;
 }
Exemplo n.º 2
0
 /** Submit cart to convead
  * @param $order_number
  * @param $order_total
  * @param $items
  */
 public static function submitCart()
 {
     $convead_plgn_options = self::get_params();
     if (!empty($convead_plgn_options['convead_key'])) {
         require_once ABSPATH . 'wp-content/plugins/convead/lib/ConveadTracker.php';
         $url = $_SERVER["HTTP_HOST"];
         self::updateUserInfo();
         $visitor_info = array();
         if (!empty(self::$userFirstName)) {
             $visitor_info['first_name'] = self::$userFirstName;
         }
         if (!empty(self::$userLastName)) {
             $visitor_info['last_name'] = self::$userLastName;
         }
         if (!empty(self::$userEmail)) {
             $visitor_info['email'] = self::$userEmail;
         }
         if (!empty(self::$userPhone)) {
             $visitor_info['phone'] = self::$userPhone;
         }
         if (!empty(self::$userDateOfBirth)) {
             $visitor_info['date_of_birth'] = self::$userDateOfBirth;
         }
         if (!empty(self::$userGender)) {
             $visitor_info['gender'] = self::$userGender;
         }
         do_action('convead_visitor_info', $visitor_info);
         $guestUID = isset($_COOKIE['convead_guest_uid']) ? $_COOKIE['convead_guest_uid'] : '';
         $ConveadTracker = new ConveadTracker($convead_plgn_options['convead_key'], $url, $guestUID, self::$user_id, $visitor_info);
         $cart = WC()->cart->get_cart();
         $cartValue = $products = array();
         $sessionCartValue = unserialize(WC()->session->get('convead_cart_value', ''));
         $cartChanged = false;
         self::log('Event upldate cart ' . date('Y-m-d h:i:s'));
         self::log('$sessionCartValue');
         self::log($sessionCartValue);
         if (count($cart)) {
             self::log('Count cart = ' . count($cart));
             foreach ($cart as $k => $v) {
                 $pid = !empty($v['variation_id']) && !$convead_plgn_options['only_product_id'] ? $v['variation_id'] : $v['product_id'];
                 $price = $v['data']->price * $convead_plgn_options['currency_excange_rate'];
                 $products[] = array("product_id" => $pid, "qnt" => $v['quantity'], "price" => $price);
                 $cartValue[$k] = $v['quantity'];
                 if (!isset($sessionCartValue[$k]) || $sessionCartValue[$k] != $v['quantity']) {
                     self::log('Cart changed by cart product count ' . $v['quantity'] . ' != session product count ' . (double) $sessionCartValue[$k] . ' Product ID = ' . $pid);
                     $cartChanged = true;
                 }
                 if (isset($sessionCartValue[$k])) {
                     unset($sessionCartValue[$k]);
                 }
             }
         }
         if (count($sessionCartValue)) {
             self::log('Cart changed by not empty deleted session products. $sessionCartValue:');
             self::log($sessionCartValue);
             $cartChanged = true;
         }
         self::log('$cartValue');
         self::log($cartValue);
         self::log('Cart changed: ' . (int) $cartChanged . "\r\n\r\n");
         if ($cartChanged) {
             $return = $ConveadTracker->eventUpdateCart($products);
             WC()->session->set('convead_cart_value', serialize($cartValue));
         }
     }
 }
Exemplo n.º 3
0
 /** Submit cart to convead
  * @param $order_number
  * @param $order_total
  * @param $items
  */
 private function submitCart(array $items)
 {
     if (empty($this->app_key)) {
         return;
     }
     $this->updateUserInfo();
     require_once 'lib/ConveadTracker.php';
     $uri = JUri::getInstance();
     $url = $uri->toString(array('host'));
     $visitor_info = array();
     if (!empty($this->userFirstName)) {
         $visitor_info['first_name'] = $this->userFirstName;
     }
     if (!empty($this->userLastName)) {
         $visitor_info['last_name'] = $this->userLastName;
     }
     if (!empty($this->userEmail)) {
         $visitor_info['email'] = $this->userEmail;
     }
     if (!empty($this->userPhone)) {
         $visitor_info['phone'] = $this->userPhone;
     }
     if (!empty($this->userDateOfBirth)) {
         $visitor_info['date_of_birth'] = $this->userDateOfBirth;
     }
     if (!empty($this->userGender)) {
         $visitor_info['gender'] = $this->userGender;
     }
     $guestUID = isset($_COOKIE['convead_guest_uid']) ? $_COOKIE['convead_guest_uid'] : '';
     $ConveadTracker = new ConveadTracker($this->app_key, $url, $guestUID, $this->userId, $visitor_info);
     $products = array();
     if (count($items)) {
         foreach ($items as $v) {
             $products[] = array("product_id" => $v['id'], "qnt" => $v['count'], "price" => $v['price']);
         }
     }
     $return = $ConveadTracker->eventUpdateCart($products);
 }