onExistingVisit($request, $visitor, $action); } public function onExistingVisit(Request $request, Visitor $visitor, $action) { $idorder = $request->getParam('ec_id'); $isOrder = !empty($idorder); if ($isOrder) { return 0; } $existingValue = $visitor->getVisitorColumn($this->columnName); if ($existingValue !== null && $existingValue !== false) { // already set return $existingValue; } $prevSecondsSinceLastOrder = $visitor->getPreviousVisitColumn($this->columnName); if ($prevSecondsSinceLastOrder === null || $prevSecondsSinceLastOrder === false) { // no order at all for visitor return null; } $visitFirstActionTime = $visitor->getPreviousVisitColumn('visit_first_action_time'); if ($visitFirstActionTime === null || $visitFirstActionTime === false) { // no previous visit return null; } $visitFirstActionTime = Date::factory($visitFirstActionTime)->getTimestamp(); $secondsSinceLastAction = $request->getCurrentTimestamp() - $visitFirstActionTime; $secondsSinceLastOrder = $prevSecondsSinceLastOrder + $secondsSinceLastAction; return $secondsSinceLastOrder; } /** * @param Request $request * @param Visitor $visitor * @param Action|null $action * @return mixed */ public function onAnyGoalConversion(Request $request, Visitor $visitor, $action) { return $visitor->getVisitorColumn($this->columnName); } }