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; }
/** 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)); } } }
/** 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); }