public function addForcedAffiliateToVisitorAffiliates(Pap_Common_VisitorAffiliateCacheCompoundContext $visitorAffiliatesCacheCompoundContext) { $context = $visitorAffiliatesCacheCompoundContext->getContext(); if ($context->getTrackingMethod() != Pap_Common_Transaction::TRACKING_METHOD_FORCED_PARAMETER && $context->getTrackingMethod() != Pap_Common_Transaction::TRACKING_METHOD_COUPON) { $context->debug('SplitCommissions - not forced affiliate'); return; } $context->debug('SplitCommissions - forced affiliate'); $context->setDateCreated(Gpf_Common_DateUtils::now()); $this->splitCommissionsSaveVisitorAffiliate($visitorAffiliatesCacheCompoundContext); }
public function recognizeParameters(Pap_Common_VisitorAffiliateCacheCompoundContext $visitorAffiliateCacheCompoundContext) { $context = $visitorAffiliateCacheCompoundContext->getContext(); $context->debug("Recognizing parameters from coupon started"); $this->coupon = $this->recognizeCoupon($context); if ($this->coupon != null) { $this->recognizeAffiliate($context); $this->recognizeBanner($context); $this->recognizeCampaign($context); if ($this->isRecognizedParams()) { $this->setRecognizedParams($context); } } $context->debug("Recognizing parameters from Coupon ended"); return Gpf_Plugins_Engine::PROCESS_CONTINUE; }
/** * checks if lifetime referral exists and if user (affiliate) is still valid * * @param Pap_Contexts_Action $context */ public function checkLifetimeReferral(Pap_Common_VisitorAffiliateCacheCompoundContext $visitorAffiliateCompoundContext) { $context = $visitorAffiliateCompoundContext->getContext(); $context->debug(Gpf_Lang::_runtime('PLUGIN LifetimeCommissions checkLifetimeReferral started')); $identifier = $this->getIdentifier($context); if($identifier == null || $identifier == '') { $context->debug(" Identifier (data1) is empty, stopping"); } else { $user = $this->findUserByIdentifier($context, $identifier); if($user != null) { $context->setUserObject($user); } } $context->debug(Gpf_Lang::_runtime('PLUGIN LifetimeCommissions ended')); $context->debug(''); return Gpf_Plugins_Engine::PROCESS_CONTINUE; }
public function saveVisitorAffiliate(Pap_Common_VisitorAffiliateCacheCompoundContext $cacheCompoundContext) { $cacheCompoundContext->setVisitorAffiliateAlreadySaved(true); $context = $cacheCompoundContext->getContext(); $cache = $cacheCompoundContext->getVisitorAffilliateCache(); $context->debug('Saving VisitorAffiliate by SplitCommissions started'); Pap_Features_SplitCommissions_VisitorAffiliateCheckCompatibility::getHandlerInstance()->checkCompatibility($context->getVisitorId(), $cache); $rows = $cache->getVisitorAffiliateAllRows($context->getVisitorId()); $oldVisitorAffiliate = null; $lastClickVisitorAffiliate = null; $firstClickVisitorAffiliate = null; foreach ($rows as $row) { if (!$row->isValid()) { continue; } if ($firstClickVisitorAffiliate == null || $firstClickVisitorAffiliate->getDateVisit() > $row->getDateVisit()) { $firstClickVisitorAffiliate = $row; } if ($lastClickVisitorAffiliate == null || $lastClickVisitorAffiliate->getDateVisit() < $row->getDateVisit()) { $lastClickVisitorAffiliate = $row; } if ($row->isActual()) { $row->setActual(false); } } $oldVisitorAffiliate = $this->findAlreadyStoredVisitorAffiliate($rows, $firstClickVisitorAffiliate, $context); if ($firstClickVisitorAffiliate == null) { $firstVisitorAffiliate = $cache->createVisitorAffiliate($context->getVisitorId()); Pap_Tracking_Click_SaveVisitorAffiliate::prepareVisitorAffiliate($firstVisitorAffiliate, $context); $rows->add($firstVisitorAffiliate); $visitorAffiliate = $cache->createVisitorAffiliate($context->getVisitorId()); } else { $visitorAffiliate = $this->getVisitorAffiliate($firstClickVisitorAffiliate, $oldVisitorAffiliate, $cache, $context); if ($oldVisitorAffiliate == null && $visitorAffiliate === $firstClickVisitorAffiliate) { Pap_Tracking_Click_SaveVisitorAffiliate::prepareVisitorAffiliate($visitorAffiliate, $context); $visitorAffiliate = $cache->createVisitorAffiliate($context->getVisitorId()); } } if ($visitorAffiliate == null) { $context->debug('SplitCommission VisitorAffiliate no updated - not actual data'); return; } Pap_Tracking_Click_SaveVisitorAffiliate::prepareVisitorAffiliate($visitorAffiliate, $context); if ($oldVisitorAffiliate == null && $firstClickVisitorAffiliate !== $visitorAffiliate) { $rows->add($visitorAffiliate); } $context->debug('New visitorAffiliate added/saved by SplitCommissions'); }