/** * Returns the Tracker_Visit object. * This method can be overwritten to use a different Tracker_Visit object * * @throws Exception * @return Piwik_Tracker_Visit */ protected function getNewVisitObject() { $visit = null; Piwik_PostEvent('Tracker.getNewVisitObject', $visit); if (is_null($visit)) { $visit = new Piwik_Tracker_Visit(self::$forcedIpString, self::$forcedDateTime); $visit->setForcedVisitorId(self::$forcedVisitorId); } elseif (!$visit instanceof Piwik_Tracker_Visit_Interface) { throw new Exception("The Visit object set in the plugin must implement Piwik_Tracker_Visit_Interface"); } return $visit; }