コード例 #1
0
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;
}
コード例 #2
0
 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);
 }