/** * @param Request $request * @param Visitor $visitor * @param Action|null $action * * @return mixed|false */ public function onExistingVisit(Request $request, Visitor $visitor, $action) { $forcedUserId = $request->getForcedUserId(); if ($forcedUserId) { return $forcedUserId; } return false; }
/** * @param $visitor * @param $valuesToUpdate * @return mixed */ private function setIdVisitorForExistingVisit($valuesToUpdate) { // Might update the idvisitor when it was forced or overwritten for this visit if (strlen($this->visitProperties->getProperty('idvisitor')) == Tracker::LENGTH_BINARY_ID) { $binIdVisitor = $this->visitProperties->getProperty('idvisitor'); $valuesToUpdate['idvisitor'] = $binIdVisitor; } // User ID takes precedence and overwrites idvisitor value $userId = $this->request->getForcedUserId(); if ($userId) { $userIdHash = $this->request->getUserIdHashed($userId); $binIdVisitor = Common::hex2bin($userIdHash); $this->visitProperties->setProperty('idvisitor', $binIdVisitor); $valuesToUpdate['idvisitor'] = $binIdVisitor; } return $valuesToUpdate; }
/** * Gather fields=>values that needs to be updated for the existing visit in log_visit * * @param Visitor $visitor * @param Action|null $action * @param $visitIsConverted * @return array */ protected function getExistingVisitFieldsToUpdate($visitor, $action, $visitIsConverted) { $valuesToUpdate = array(); // Might update the idvisitor when it was forced or overwritten for this visit if (strlen($this->visitorInfo['idvisitor']) == Tracker::LENGTH_BINARY_ID) { $valuesToUpdate['idvisitor'] = $this->visitorInfo['idvisitor']; $visitor->setVisitorColumn('idvisitor', $this->visitorInfo['idvisitor']); } if (strlen($this->request->getForcedUserId()) > 0) { $valuesToUpdate['user_id'] = $this->request->getForcedUserId(); $visitor->setVisitorColumn('user_id', $valuesToUpdate['user_id']); } $dimensions = $this->getAllVisitDimensions(); $valuesToUpdate = $this->triggerHookOnDimensions($dimensions, 'onExistingVisit', $visitor, $action, $valuesToUpdate); if ($visitIsConverted) { $valuesToUpdate = $this->triggerHookOnDimensions($dimensions, 'onConvertedVisit', $visitor, $action, $valuesToUpdate); } // Custom Variables overwrite previous values on each page view $valuesToUpdate = array_merge($valuesToUpdate, $this->visitorCustomVariables); return $valuesToUpdate; }
protected function shouldLookupOneVisitorFieldOnly($isVisitorIdToLookup, Request $request) { $isForcedUserIdMustMatch = false !== $request->getForcedUserId(); if ($isForcedUserIdMustMatch) { // if &iud was set, we must try and match both idvisitor and config_id return false; } // This setting would be enabled for Intranet websites, to ensure that visitors using all the same computer config, same IP // are not counted as 1 visitor. In this case, we want to enforce and trust the visitor ID from the cookie. if ($isVisitorIdToLookup && $this->trustCookiesOnly) { return true; } // If a &cid= was set, we force to select this visitor (or create a new one) $isForcedVisitorIdMustMatch = $request->getForcedVisitorId() != null; if ($isForcedVisitorIdMustMatch) { return true; } if (!$isVisitorIdToLookup) { return true; } return false; }
/** * @param Request $request * @param Visitor $visitor * @param Action|null $action * * @return mixed|false */ public function onExistingVisit(Request $request, Visitor $visitor, $action) { return $request->getForcedUserId(); }