writeDebugInfo(); $request->setMetadata('Actions', 'action', $action); // save the exit actions of the last action in this visit as the referrer actions for the action being tracked. // when the visit is updated, these columns will be changed, so we have to do this before recordLogs $request->setMetadata('Actions', 'idReferrerActionUrl', $visitProperties->getProperty('visit_exit_idaction_url')); $request->setMetadata('Actions', 'idReferrerActionName', $visitProperties->getProperty('visit_exit_idaction_name')); } public function afterRequestProcessed(VisitProperties $visitProperties, Request $request) { /** @var Action $action */ $action = $request->getMetadata('Actions', 'action'); if (!empty($action)) { // other plugins can unset the action if they want $action->loadIdsFromLogActionTable(); } } public function recordLogs(VisitProperties $visitProperties, Request $request) { /** @var Action $action */ $action = $request->getMetadata('Actions', 'action'); if ($action !== null && !$request->getMetadata('CoreHome', 'visitorNotFoundInDb') ) { $idReferrerActionUrl = 0; $idReferrerActionName = 0; if (!$request->getMetadata('CoreHome', 'isNewVisit')) { $idReferrerActionUrl = $request->getMetadata('Actions', 'idReferrerActionUrl'); $idReferrerActionName = $request->getMetadata('Actions', 'idReferrerActionName'); } $visitor = Visitor::makeFromVisitProperties($visitProperties, $request); $action->record($visitor, $idReferrerActionUrl, $idReferrerActionName); } } }