function wpam_generate_refkey_from_affiliate_id($aff_id) { $db = new WPAM_Data_DataAccess(); $affiliateRepos1 = $db->getAffiliateRepository(); $wpam_refkey = NULL; $affiliate = $affiliateRepos1->loadBy(array('affiliateId' => $aff_id, 'status' => 'active')); if ($affiliate === NULL) { //affiliate with this ID does not exist WPAM_Logger::log_debug("generate_refkey_from_affiliate_id function - affiliate ID " . $aff_id . " does not exist"); } else { $default_creative_id = get_option(WPAM_PluginConfig::$DefaultCreativeId); if (!empty($default_creative_id)) { $creative = $db->getCreativesRepository()->load($default_creative_id); $linkBuilder = new WPAM_Tracking_TrackingLinkBuilder($affiliate, $creative); $strRefKey = $linkBuilder->getTrackingKey()->pack(); $refKey = new WPAM_Tracking_TrackingKey(); $refKey->unpack($strRefKey); $idGenerator = new WPAM_Tracking_UniqueIdGenerator(); $trackTokenModel = new WPAM_Data_Models_TrackingTokenModel(); $trackTokenModel->dateCreated = time(); $trackTokenModel->sourceAffiliateId = $aff_id; $trackTokenModel->sourceCreativeId = $refKey->getCreativeId(); $trackTokenModel->trackingKey = $idGenerator->generateId(); $trackTokenModel->referer = isset($_SERVER['HTTP_REFERER']) ? $_SERVER['HTTP_REFERER'] : NULL; /* add a new visit so it doesn't fail while awarding commission */ $db->getTrackingTokenRepository()->insert($trackTokenModel); $db->getEventRepository()->quickInsert(time(), $trackTokenModel->trackingKey, 'visit'); /* */ $binConverter = new WPAM_Util_BinConverter(); $wpam_refkey = $binConverter->binToString($trackTokenModel->trackingKey); } } return $wpam_refkey; }
public function handleImpression($request) { $strRefKey = NULL; if (isset($request[WPAM_PluginConfig::$RefKey])) { $strRefKey = $request[WPAM_PluginConfig::$RefKey]; } else { throw new Exception(__('no refkey in request.', 'wpam')); } $refKey = new WPAM_Tracking_TrackingKey(); $refKey->unpack($strRefKey); $db = new WPAM_Data_DataAccess(); $affiliateRepos = $db->getAffiliateRepository(); $affiliateId = $affiliateRepos->getAffiliateIdFromRefKey($refKey->getAffiliateRefKey()); if ($affiliateId === NULL) { throw new Exception(__('invalid refkey data: ', 'wpam') . $strRefKey); } $impressionModel = new WPAM_Data_Models_ImpressionModel(); $impressionModel->dateCreated = time(); $impressionModel->sourceAffiliateId = $affiliateId; $impressionModel->sourceCreativeId = $refKey->getCreativeId(); $impressionModel->referer = isset($_SERVER['HTTP_REFERER']) ? $_SERVER['HTTP_REFERER'] : NULL; if (isset($request['wpam_affiliateSubCode'])) { $impressionModel->affiliateSubCode = $request['wpam_affiliateSubCode']; } $db->getImpressionRepository()->insert($impressionModel); }