コード例 #1
0
 public function processRequest($request)
 {
     $db = new WPAM_Data_DataAccess();
     $affiliateFields = $db->getAffiliateFieldRepository()->loadMultipleBy(array('enabled' => true), array('order' => 'asc'));
     if (isset($request['action']) && $request['action'] == 'saveInfo') {
         $validator = new WPAM_Validation_Validator();
         $validator->addValidator('ddBountyType', new WPAM_Validation_SetValidator(array('fixed', 'percent')));
         if ($request['ddBountyType'] === 'fixed') {
             $validator->addValidator('txtBountyAmount', new WPAM_Validation_MoneyValidator());
         } else {
             if ($request['ddBountyType'] === 'percent') {
                 $validator->addValidator('txtBountyAmount', new WPAM_Validation_NumberValidator());
             }
         }
         $affiliateHelper = new WPAM_Util_AffiliateFormHelper();
         $vr = $affiliateHelper->validateForm($validator, $request, $affiliateFields);
         if ($vr->getIsValid()) {
             $model = $affiliateHelper->getNewAffiliate();
             $affiliateHelper->setModelFromForm($model, $affiliateFields, $request);
             $affiliateHelper->setPaymentFromForm($model, $request);
             //send email etc.
             $userHandler = new WPAM_Util_UserHandler();
             if (get_option(WPAM_PluginConfig::$AutoAffiliateApproveIsEnabledOption) == 1) {
                 $userHandler->AutoapproveAffiliate($model, $request['ddBountyType'], $request['txtBountyAmount']);
             } else {
                 $userHandler->approveAffiliate($model, $request['ddBountyType'], $request['txtBountyAmount'], false);
             }
             return new WPAM_Pages_TemplateResponse('admin/affiliate_new_success');
         } else {
             return $this->getForm($affiliateFields, $request, $vr);
         }
     }
     return $this->getForm($affiliateFields, $request);
 }
コード例 #2
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;
}
コード例 #3
0
 protected function getDetailForm($affiliateFields, $model, $request = null, $validationResult = null)
 {
     //add widget_form_error js to affiliate_detail page
     add_action('admin_footer', array($this, 'onFooter'));
     $db = new WPAM_Data_DataAccess();
     $response = new WPAM_Pages_TemplateResponse('admin/affiliate_detail');
     $response->viewData['affiliateFields'] = $affiliateFields;
     $response->viewData['affiliate'] = $model;
     $where = array('affiliateId' => $model->affiliateId);
     $affiliateHelper = new WPAM_Util_AffiliateFormHelper();
     $affiliateHelper->addTransactionDateRange($where, $request, $response);
     $response->viewData['transactions'] = $db->getTransactionRepository()->loadMultipleBy($where, array('dateCreated' => 'desc'));
     $response->viewData['showBalance'] = true;
     $response->viewData['paymentMethods'] = $affiliateHelper->getPaymentMethods();
     $response->viewData['paymentMethod'] = isset($request['ddPaymentMethod']) ? $request['ddPaymentMethod'] : $model->paymentMethod;
     $response->viewData['paypalEmail'] = isset($request['txtPaypalEmail']) ? $request['txtPaypalEmail'] : $model->paypalEmail;
     $response->viewData['bountyType'] = isset($request['ddBountyType']) ? $request['ddBountyType'] : $model->bountyType;
     $response->viewData['bountyAmount'] = isset($request['txtBountyAmount']) ? $request['txtBountyAmount'] : $model->bountyAmount;
     $this->addBalance($response->viewData['transactions'], $db->getTransactionRepository()->getBalance($model->affiliateId, empty($request['from']) ? NULL : $request['from']), 'desc');
     $accountStanding = $db->getTransactionRepository()->getAccountSummary($model->affiliateId);
     $response->viewData['accountStanding'] = $accountStanding->standing;
     $response->viewData['accountCredits'] = $accountStanding->credits;
     $response->viewData['accountDebits'] = $accountStanding->debits;
     $response->viewData['accountAdjustments'] = $accountStanding->adjustments;
     $response->viewData['user'] = new WP_User($model->userId);
     if ($request !== null) {
         $response->viewData['request'] = $request;
     }
     if ($validationResult !== null) {
         //die(print_r($validationResult, true));
         $response->viewData['validationResult'] = $validationResult;
     }
     $response->viewData['affiliateFields'] = $affiliateFields;
     $response->viewData['creatives'] = $db->getCreativesRepository()->loadAllActiveNoDeletes();
     if (get_option(WPAM_PluginConfig::$AffEnableImpressions)) {
         $where = array('sourceAffiliateId' => $model->affiliateId);
         $response->viewData['impressions'] = $db->getImpressionRepository()->loadMultipleByLimit($where, array('dateCreated' => 'desc'), 100);
         $creativeNames = array();
         foreach ($response->viewData['impressions'] as $impression) {
             if (!array_key_exists($impression->sourceCreativeId, $creativeNames)) {
                 $creativeNames[$impression->sourceCreativeId] = $db->getCreativesRepository()->load($impression->sourceCreativeId)->name;
             }
         }
         $response->viewData['creativeNames'] = $creativeNames;
         $where = array('sourceAffiliateId' => $model->affiliateId);
         $response->viewData['impressionCount'] = $db->getImpressionRepository()->count($where);
     }
     //$summary = $db->getEventRepository()->getSummary ( $model->affiliateId );
     $args = array();
     $args['aff_id'] = $model->affiliateId;
     $total_clicks = WPAM_Click_Tracking::get_all_time_total_clicks($args);
     $total_transaction_count = WPAM_Commission_Tracking::get_all_time_transaction_count($args);
     $response->viewData['visitCount'] = $total_clicks;
     //$summary->visits;
     $response->viewData['purchaseCount'] = $total_transaction_count;
     //$summary->purchases;
     //save for form validation in the footer
     $this->response = $response;
     return $response;
 }
コード例 #4
0
 public static function record_click()
 {
     if (isset($_REQUEST[WPAM_PluginConfig::$RefKey]) && !empty($_REQUEST[WPAM_PluginConfig::$RefKey])) {
         //this is the old tracking code (deprecated). This will be removed once the new tracking system is functional.
         global $wpdb;
         $strRefKey = trim(strip_tags($_REQUEST[WPAM_PluginConfig::$RefKey]));
         $aff_id = "";
         if (is_numeric($strRefKey)) {
             //wpam_refkey contains affiliate ID. If a record is found save it
             $query = "SELECT * FROM " . WPAM_AFFILIATES_TBL . " WHERE affiliateId = %d";
             $affiliate = $wpdb->get_row($wpdb->prepare($query, $strRefKey));
             if ($affiliate != null && $affiliate->status == "active") {
                 $aff_id = $strRefKey;
             }
         } else {
             if (is_email($strRefKey)) {
                 //wpam_refkey contains email. Find the ID associated with that email and save it
                 $query = "SELECT * FROM " . WPAM_AFFILIATES_TBL . " WHERE email = %s";
                 $affiliate = $wpdb->get_row($wpdb->prepare($query, $strRefKey));
                 if ($affiliate != null && $affiliate->status == "active") {
                     $aff_id = $affiliate->affiliateId;
                 }
             } else {
                 //TODO start - wpam_refkey contains long tracking key. Find affiliate ID from it and save it. This block of code will just be here for backwards compatibilty
                 $refKey = new WPAM_Tracking_TrackingKey();
                 $refKey->unpack($strRefKey);
                 $db = new WPAM_Data_DataAccess();
                 $affiliateRepos = $db->getAffiliateRepository();
                 $affiliateId = $affiliateRepos->getAffiliateIdFromRefKey($refKey->getAffiliateRefKey());
                 if ($affiliateId === NULL) {
                 } else {
                     $aff_id = $affiliateId;
                 }
             }
         }
         //TODO end
         if (!empty($aff_id)) {
             $cookie_life_time = wpam_get_cookie_life_time();
             setcookie('wpam_id', $aff_id, $cookie_life_time, "/", COOKIE_DOMAIN);
         }
     }
     //this will be the new affiliate link. A click will be tracked when wpam_id is present in the URL
     if (isset($_REQUEST[WPAM_PluginConfig::$wpam_id]) && !empty($_REQUEST[WPAM_PluginConfig::$wpam_id])) {
         $aff_id = trim(strip_tags($_REQUEST[WPAM_PluginConfig::$wpam_id]));
         $cookie_life_time = wpam_get_cookie_life_time();
         setcookie('wpam_id', $aff_id, $cookie_life_time, "/", COOKIE_DOMAIN);
         $args = array();
         $args['dateCreated'] = date("Y-m-d H:i:s", time());
         $args['sourceAffiliateId'] = $aff_id;
         $args['trackingKey'] = uniqid();
         //save a unique ID to avoid error
         $args['sourceCreativeId'] = '';
         // remove this column from the click tracking menu in the settings
         $args['referer'] = isset($_SERVER['HTTP_REFERER']) ? $_SERVER['HTTP_REFERER'] : '';
         $args['affiliateSubCode'] = '';
         WPAM_Click_Tracking::insert_click_data($args);
     }
 }
コード例 #5
0
 public function processRequest($request)
 {
     $db = new WPAM_Data_DataAccess();
     $affiliateFields = $db->getAffiliateFieldRepository()->loadMultipleBy(array('enabled' => true), array('order' => 'asc'));
     if (isset($request['action']) && $request['action'] == 'submit') {
         $form_validated = false;
         $affiliateHelper = new WPAM_Util_AffiliateFormHelper();
         $vr = $affiliateHelper->validateForm(new WPAM_Validation_Validator(), $request, $affiliateFields);
         if ($vr->getIsValid()) {
             $form_validated = true;
         }
         $output = apply_filters('wpam_validate_registration_form_submission', '', $request);
         if (!empty($output)) {
             $form_validated = false;
         }
         if ($form_validated) {
             $model = $affiliateHelper->getNewAffiliate();
             $affiliateHelper->setModelFromForm($model, $affiliateFields, $request);
             //Fire the action hook
             do_action('wpam_front_end_registration_form_submitted', $model, $request);
             //Check if automatic affiliate approval option is enabled
             if (get_option(WPAM_PluginConfig::$AutoAffiliateApproveIsEnabledOption) == 1) {
                 $userHandler = new WPAM_Util_UserHandler();
                 $userHandler->AutoapproveAffiliate($model);
                 return new WPAM_Pages_TemplateResponse('aff_app_submitted_auto_approved');
             }
             //Do the non auto approval process
             $db = new WPAM_Data_DataAccess();
             $id = $db->getAffiliateRepository()->insert($model);
             if ($id == 0) {
                 if (WPAM_DEBUG) {
                     echo '<pre>', var_export($model, true), '</pre>';
                 }
                 wp_die(__('Error submitting your details to the database. This is a bug, and your application was not submitted.', 'affiliates-manager'));
             }
             $mailer = new WPAM_Util_EmailHandler();
             //Notify admin that affiliate has registered
             $blogname = wp_specialchars_decode(get_option('blogname'), ENT_QUOTES);
             $message = sprintf(__('New affiliate registration on your site %s:', 'affiliates-manager'), $blogname) . "\r\n\r\n";
             $message .= sprintf(__('Name: %s %s', 'affiliates-manager'), $request['_firstName'], $request['_lastName']) . "\r\n";
             $message .= sprintf(__('Email: %s', 'affiliates-manager'), $request['_email']) . "\r\n";
             $message .= sprintf(__('Company: %s', 'affiliates-manager'), $request['_companyName']) . "\r\n";
             $message .= sprintf(__('Website: %s', 'affiliates-manager'), $request['_websiteUrl']) . "\r\n\r\n";
             $message .= sprintf(__('View Application: %s', 'affiliates-manager'), admin_url('admin.php?page=wpam-affiliates&viewDetail=' . $id)) . "\r\n";
             $mailer->mailAffiliate(get_option('admin_email'), __('New Affiliate Registration', 'affiliates-manager'), $message);
             //Notify affiliate of their application
             $affsubj = sprintf(__('Affiliate application for %s', 'affiliates-manager'), $blogname);
             $affmessage = WPAM_MessageHelper::GetMessage('affiliate_application_submitted_email');
             $mailer->mailAffiliate($request['_email'], $affsubj, $affmessage);
             return new WPAM_Pages_TemplateResponse('affiliate_application_submitted');
         } else {
             return $this->getForm($affiliateFields, $request, $vr);
         }
     }
     //else
     return $this->getForm($affiliateFields);
 }
コード例 #6
0
 public static function GetMessage($name)
 {
     $msgRepo = self::$db->getMessageRepository();
     $msg = $msgRepo->loadBy(array('name' => $name));
     if ($msg === NULL) {
         throw new Exception(sprintf(__("Attempt to load invalid message of name '%s'", 'wpam'), $name));
     }
     return $msg->content;
 }
コード例 #7
0
 public function isActiveAffiliate($wpUser)
 {
     $db = new WPAM_Data_DataAccess();
     $affiliate = $db->getAffiliateRepository()->loadByUserId($wpUser->ID);
     if ($affiliate !== NULL) {
         $status = $affiliate->status;
         if ($status != 'declined' && $status != 'pending') {
             return true;
         }
     }
     return false;
 }
コード例 #8
0
 public function getPostId($postName)
 {
     $database = new WPAM_Data_DataAccess();
     return $database->getWordPressRepository()->getPostId($postName);
 }
コード例 #9
0
 private function processSelectAffiliatesRequest($request)
 {
     $db = new WPAM_Data_DataAccess();
     $aff_db = $db->getAffiliateRepository();
     $response = new WPAM_Pages_TemplateResponse('admin/paypalpayments/select_affiliates');
     $where = array('paymentMethod' => 'paypal');
     $affiliateHelper = new WPAM_Util_AffiliateFormHelper();
     $affiliateHelper->addTransactionDateRange($where, $request, $response);
     $response->viewData['affiliates'] = $aff_db->loadAffiliateSummary($where, '0.01', array('balance' => 'desc'));
     $response->viewData['notShownCount'] = $aff_db->count(array('paymentMethod' => array('!=', 'paypal'), 'status' => array('IN', array('active', 'inactive'))));
     $response->viewData['minPayout'] = get_option(WPAM_PluginConfig::$MinPayoutAmountOption);
     return $response;
 }
コード例 #10
0
 protected function confirmAffiliate($affiliate, $request)
 {
     $affiliate->confirm();
     if ($request['ddPaymentMethod'] === 'paypal') {
         $affiliate->setPaypalPaymentMethod($request['txtPaypalEmail']);
     } else {
         if ($request['ddPaymentMethod'] === 'check') {
             $affiliate->setCheckPaymentMethod($request['txtCheckTo']);
         }
     }
     $db = new WPAM_Data_DataAccess();
     $db->getAffiliateRepository()->update($affiliate);
 }
コード例 #11
0
 public function AutoapproveAffiliate($affiliate, $bountyType = '', $bountyAmount = '')
 {
     $sendEmail = true;
     $mailer = new WPAM_Util_EmailHandler();
     $db = new WPAM_Data_DataAccess();
     //Create Affiliate account in WP (1.1.2 if they don't have one)
     //and send them an email telling them they're approved
     $userLogin = sanitize_user($affiliate->email);
     $userEmail = apply_filters('user_registration_email', $affiliate->email);
     $blogname = wp_specialchars_decode(get_option('blogname'), ENT_QUOTES);
     $message = sprintf(__('New affiliate registration for %s: has been approved!', 'wpam'), $blogname) . "\r\n\r\n";
     if (username_exists($userLogin)) {
         $user = new WP_User(get_userdatabylogin($userLogin)->ID);
         if ($user->has_cap(WPAM_PluginConfig::$AffiliateCap)) {
             throw new Exception(__('User already has an account and is already an affiliate', 'wpam'));
         } else {
             $user->add_cap(WPAM_PluginConfig::$AffiliateCap);
             $message .= __('Log into the site with your existing account and get started.', 'wpam') . "\r\n";
             $userId = $user->ID;
         }
     } elseif (email_exists($userEmail)) {
         $user = new WP_User(get_user_by('email', $userEmail)->ID);
         if ($db->getAffiliateRepository()->existsBy(array('userId' => $user->ID))) {
             throw new Exception(__('User already has an account and is already an affiliate', 'wpam'));
         } else {
             $user->add_cap(WPAM_PluginConfig::$AffiliateCap);
             $message .= __('Log into the site with your existing account and get started.', 'wpam') . "\r\n";
             $userId = $user->ID;
         }
     } else {
         //user not found by email address as username and no account with that email address exists
         //create new user using email address as username
         $userPass = wp_generate_password();
         $userId = wp_create_user($userLogin, $userPass, $userEmail);
         if (is_wp_error($userId)) {
             throw new Exception($userId->get_error_message());
         }
         //$mailer->mailNewAffiliate( $userId, $userPass );
         $mailer->mailNewApproveAffiliate($userId, $userPass);
         $sendEmail = false;
         $user = new WP_User($userId);
         $user->add_cap(WPAM_PluginConfig::$AffiliateCap);
     }
     $affiliate->activate();
     $affiliate->userId = $userId;
     if (isset($bountyType) && !empty($bountyType)) {
         $affiliate->bountyType = $bountyType;
     } else {
         $affiliate->bountyType = get_option(WPAM_PluginConfig::$AffBountyType);
     }
     if (isset($bountyAmount) && !empty($bountyAmount)) {
         $affiliate->bountyAmount = $bountyAmount;
     } else {
         $affiliate->bountyAmount = get_option(WPAM_PluginConfig::$AffBountyAmount);
     }
     $id = $db->getAffiliateRepository()->insert($affiliate);
     if ($id == 0) {
         if (WPAM_DEBUG) {
             echo '<pre>', var_export($model, true), '</pre>';
         }
         wp_die(__('Error submitting your details to the database. This is a bug, and your application was not submitted.', 'wpam'));
     }
     //Notify admin that affiliate has registered
     $admin_message = sprintf(__('New affiliate registration on your site %s:', 'wpam'), $blogname) . "\r\n\r\n";
     $admin_message .= sprintf(__('Name: %s %s', 'wpam'), $affiliate->firstName, $affiliate->lastName) . "\r\n";
     $admin_message .= sprintf(__('Email: %s', 'wpam'), $affiliate->email) . "\r\n";
     $admin_message .= sprintf(__('Company: %s', 'wpam'), $affiliate->companyName) . "\r\n";
     $admin_message .= sprintf(__('Website: %s', 'wpam'), $affiliate->websiteUrl) . "\r\n\r\n";
     $admin_message .= sprintf(__('View Application: %s', 'wpam'), admin_url('admin.php?page=wpam-affiliates&viewDetail=' . $id)) . "\r\n";
     $mailer->mailAffiliate(get_option('admin_email'), __('New Affiliate Registration', 'wpam'), $admin_message);
     //Send user email indicating they're approved
     if ($sendEmail) {
         $mailer->mailAffiliate($userEmail, sprintf(__('Affiliate Application for %s', 'wpam'), $blogname), $message);
     }
 }
コード例 #12
0
 public function deleteCreative($creativeId)
 {
     if (!wp_get_current_user()->has_cap(WPAM_PluginConfig::$AdminCap)) {
         throw new Exception(__('Access denied.', 'affiliates-manager'));
     }
     $db = new WPAM_Data_DataAccess();
     if (!$db->getCreativesRepository()->exists($creativeId)) {
         throw new Exception(__('Invalid creative.', 'affiliates-manager'));
     }
     $creative = $db->getCreativesRepository()->load($creativeId);
     $creative->status = 'deleted';
     $db->getCreativesRepository()->update($creative);
     return new JsonResponse(JsonResponse::STATUS_OK);
 }
コード例 #13
0
 protected function getSettingsForm($request = NULL, $message = NULL, $vr = NULL)
 {
     //add widget_form_error js to settings page
     add_action('admin_footer', array($this, 'onFooter'));
     $response = new WPAM_Pages_TemplateResponse('admin/settings/settings');
     $db = new WPAM_Data_DataAccess();
     $response->viewData['affiliateRegisterFields'] = $db->getAffiliateFieldRepository()->loadMultipleBy(array(), array('order' => 'asc'));
     $response->viewData['messages'] = $db->getMessageRepository()->loadAll();
     if ($request !== NULL) {
         $response->viewData['request']['txtTnc'] = $request['txtTnc'];
         $response->viewData['request']['txtMinimumPayout'] = $request['txtMinimumPayout'];
         $response->viewData['request']['txtCookieExpire'] = $request['txtCookieExpire'];
         $response->viewData['request']['txtEmailName'] = $request['txtEmailName'];
         $response->viewData['request']['txtEmailAddress'] = $request['txtEmailAddress'];
         $response->viewData['request']['autoaffapprove'] = isset($request['autoaffapprove']) ? 1 : 0;
         $response->viewData['request']['affBountyType'] = $request['affBountyType'];
         $response->viewData['request']['affBountyAmount'] = $request['affBountyAmount'];
         $response->viewData['request']['affCurrencySymbol'] = $request['affCurrencySymbol'];
         $response->viewData['request']['affCurrencyCode'] = $request['affCurrencyCode'];
         $response->viewData['request']['chkImpressions'] = isset($request['chkImpressions']) ? 1 : 0;
         $response->viewData['request']['chkPayoutMethodCheck'] = isset($request['chkPayoutMethodCheck']) ? 1 : 0;
         $response->viewData['request']['chkPayoutMethodPaypal'] = isset($request['chkPayoutMethodPaypal']) ? 1 : 0;
         $response->viewData['request']['chkEnablePaypalMassPay'] = isset($request['chkEnablePaypalMassPay']) ? 1 : 0;
         $response->viewData['request']['txtPaypalAPIUser'] = $request['txtPaypalAPIUser'];
         $response->viewData['request']['txtPaypalAPIPassword'] = $request['txtPaypalAPIPassword'];
         $response->viewData['request']['txtPaypalAPISignature'] = $request['txtPaypalAPISignature'];
         $response->viewData['request']['ddPaypalAPIEndPoint'] = $request['ddPaypalAPIEndPoint'];
         $response->viewData['request']['affLoginPage'] = $request['affLoginPage'];
         $response->viewData['validationResult'] = $vr;
     } else {
         $response->viewData['request']['txtTnc'] = get_option(WPAM_PluginConfig::$TNCOptionOption);
         $response->viewData['request']['txtMinimumPayout'] = get_option(WPAM_PluginConfig::$MinPayoutAmountOption);
         $response->viewData['request']['txtCookieExpire'] = get_option(WPAM_PluginConfig::$CookieExpireOption);
         $response->viewData['request']['txtEmailName'] = get_option(WPAM_PluginConfig::$EmailNameOption);
         $response->viewData['request']['txtEmailAddress'] = get_option(WPAM_PluginConfig::$EmailAddressOption);
         $response->viewData['request']['autoaffapprove'] = get_option(WPAM_PluginConfig::$AutoAffiliateApproveIsEnabledOption);
         $response->viewData['request']['affBountyType'] = get_option(WPAM_PluginConfig::$AffBountyType);
         $response->viewData['request']['affBountyAmount'] = get_option(WPAM_PluginConfig::$AffBountyAmount);
         $response->viewData['request']['affCurrencySymbol'] = get_option(WPAM_PluginConfig::$AffCurrencySymbol);
         $response->viewData['request']['affCurrencyCode'] = get_option(WPAM_PluginConfig::$AffCurrencyCode);
         $response->viewData['request']['chkImpressions'] = get_option(WPAM_PluginConfig::$AffEnableImpressions);
         $response->viewData['request']['enable_debug'] = get_option(WPAM_PluginConfig::$AffEnableDebug);
         $response->viewData['request']['chkPayoutMethodCheck'] = get_option(WPAM_PluginConfig::$PayoutMethodCheckIsEnabledOption);
         $response->viewData['request']['chkPayoutMethodPaypal'] = get_option(WPAM_PluginConfig::$PayoutMethodPaypalIsEnabledOption);
         $response->viewData['request']['chkEnablePaypalMassPay'] = get_option(WPAM_PluginConfig::$PaypalMassPayEnabledOption);
         $response->viewData['request']['txtPaypalAPIUser'] = get_option(WPAM_PluginConfig::$PaypalAPIUserOption);
         $response->viewData['request']['txtPaypalAPIPassword'] = get_option(WPAM_PluginConfig::$PaypalAPIPasswordOption);
         $response->viewData['request']['txtPaypalAPISignature'] = get_option(WPAM_PluginConfig::$PaypalAPISignatureOption);
         $response->viewData['request']['ddPaypalAPIEndPoint'] = get_option(WPAM_PluginConfig::$PaypalAPIEndPointOption);
         $response->viewData['request']['affLoginPage'] = get_option(WPAM_PluginConfig::$AffLoginPageURL);
     }
     if ($message !== NULL) {
         $response->viewData['updateMessage'] = $message;
     }
     //save for form validation in the footer
     $this->response = $response;
     return $response;
 }
コード例 #14
0
    }
    $alink = '';
    $alink_id = '';
    $alink_email = '';
    if($record_found){
        $aid = $affiliate->affiliateId;
        $alink_id = add_query_arg( array( WPAM_PluginConfig::$RefKey => $aid ), home_url('/') );
        $aemail = $affiliate->email;
        $alink_email = add_query_arg( array( WPAM_PluginConfig::$RefKey => $aemail ), home_url('/') );
        $trackingKey = new WPAM_Tracking_TrackingKey();
        $trackingKey->setAffiliateRefKey($affiliate->uniqueRefKey);
        $trackingKey->setCreativeId($creative->creativeId);
        $alink = add_query_arg( array( WPAM_PluginConfig::$RefKey => $trackingKey->pack() ), home_url('/') );
    }
    ****/
$db = new WPAM_Data_DataAccess();
$currentUser = wp_get_current_user();
$alink_id = '';
$affiliateRepos = $db->getAffiliateRepository();
$affiliate = $affiliateRepos->loadBy(array('userId' => $currentUser->ID, 'status' => 'active'));
if ($affiliate === NULL) {
    //affiliate with this WP User ID does not exist
} else {
    $alink_id = add_query_arg(array(WPAM_PluginConfig::$wpam_id => $affiliate->affiliateId), home_url('/'));
}
?>

    <div class="wrap">
        <?php 
if (!empty($alink_id)) {
    ?>
コード例 #15
0
 public function isAvailable($wpUser)
 {
     $db = new WPAM_Data_DataAccess();
     $affiliate = $db->getAffiliateRepository()->loadByUserId($wpUser->ID);
     return $affiliate !== NULL && $affiliate->isPending();
 }
コード例 #16
0
 public function filterUserEmail($email)
 {
     $user = wp_get_current_user();
     $newEmail = get_option($user->ID . '_new_email');
     if (!empty($newEmail) && isset($_GET['newuseremail'])) {
         $db = new WPAM_Data_DataAccess();
         $affiliate = $db->getAffiliateRepository()->loadByUserId($user->ID);
         $affiliate->email = $email;
         $db->getAffiliateRepository()->update($affiliate);
     }
     return $email;
 }
コード例 #17
0
 public function isEmailInUse($value)
 {
     $db = new WPAM_Data_DataAccess();
     $affRepo = $db->getAffiliateRepository();
     return !$affRepo->existsBy(array('email' => $value, 'status' => array('!=', 'declined')));
 }
コード例 #18
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);
 }
コード例 #19
0
 protected function doDetailView($request)
 {
     if (!is_numeric($request['creativeId'])) {
         wp_die(__('Invalid creative.', 'wpam'));
     }
     $creativeId = (int) $request['creativeId'];
     $db = new WPAM_Data_DataAccess();
     $model = $db->getCreativesRepository()->load($creativeId);
     if ($model === NULL) {
         wp_die(__('Invalid creative.', 'wpam'));
     }
     $response = new WPAM_Pages_TemplateResponse('admin/creatives_detail');
     $response->viewData['creative'] = $model;
     $response->viewData['request'] = $request;
     return $response;
 }
コード例 #20
0
 public function doFreshInstallDbDefaultData()
 {
     //Only inserts the default data if the respective tables are empty
     $affiliates_fields_table = $this->db->prefix . WPAM_Data_DataAccess::TABLE_AFFILIATES_FIELDS;
     $messages_table = $this->db->prefix . WPAM_Data_DataAccess::TABLE_MESSAGES;
     $actions_table = $this->db->prefix . WPAM_Data_DataAccess::TABLE_ACTIONS;
     $results = $this->db->get_results("SELECT * FROM " . $affiliates_fields_table, OBJECT);
     if (is_null($results) || is_array($results) && empty($results)) {
         //No record in this table
         $this->db->query("\n            INSERT INTO `{$affiliates_fields_table}`\n            VALUES\n            (1,'base','First Name',50,'string',1,'firstName',1,0),\n            (2,'base','Last Name',50,'string',1,'lastName',1,1),\n            (3,'base','E-Mail Address',0,'email',1,'email',1,3),\n            (4,'base','Address Line 1',255,'string',1,'addressLine1',1,4),\n            (5,'base','Address Line 2',255,'string',0,'addressLine2',1,5),\n            (6,'base','City',128,'string',1,'addressCity',1,6),\n            (7,'base','State',0,'stateCode',1,'addressState',1,7),\n            (8,'base','Zip Code',0,'zipCode',1,'addressZipCode',1,8),\n            (9,'base','Country',0,'countryCode',1,'addressCountry',1,10),\n            (10,'base','Company Name',50,'string',0,'companyName',1,11),\n            (11,'base','Website URL',255,'string',0,'websiteUrl',1,12),\n            (12,'base','Phone Number',0,'phoneNumber',1,'phoneNumber',1,2)\n            ");
     }
     $results = $this->db->get_results("SELECT * FROM " . $actions_table);
     if (is_null($results) || is_array($results) && empty($results)) {
         //No record in this table
         $this->db->query("INSERT INTO `{$actions_table}`\n            (name, description)\n            VALUES\n            ('visit', 'New visitor'),\n            ('purchase', 'User confirmed purchase')");
     }
     $results = $this->db->get_results("SELECT * FROM " . $messages_table);
     if (is_null($results) || is_array($results) && empty($results)) {
         //No record in this table
         $this->db->query("\n            INSERT INTO `{$messages_table}`\n            VALUES\n            (1,'affiliate_application_approved','Displayed to user at logon if affiliate STATUS = APPROVED','Congratulations, the administrator has <strong>approved</strong> your application.  You have one more step to complete before you can begin publishing for this store and generating revenue! The store owner has specified the terms of your agreement, which you will need to review and agree to.<br /><br/>','web'),\n            (2,'affiliate_application_declined','Displayed to user at logon if affiliate STATUS = DECLINED','I\\'m sorry, your application was declined.','web'),\n            (3,'affiliate_application_pending','Displayed to user at logon if affiliate STATUS = PENDING','Your application is still being reviewed. Please check back later!','web'),\n            (4,'affiliate_application_submitted','Displayed to user after successfully submitting the affiliate registration form','Your application has been submitted.  The store owner will be contacting you soon.<br />\r\n<br />\r\nThank you!<br />\r\n','web'),\n            (5,'affiliate_application_submitted_email','Body of e-mail sent to the affiliate immediately after submitting their application.','Your application will be reviewed and you will be hearing from us soon!','email')\n            ");
         $db = new WPAM_Data_DataAccess();
         $msgRepo = $db->getMessageRepository();
         $msg = new WPAM_Data_Models_MessageModel();
         $msg->content = "I'm sorry, your application was declined.";
         $msg->name = 'affiliate_application_declined_email';
         $msg->type = 'email';
         $msg->use = 'Body of e-mail sent to the affiliate immediately following their application being declined.';
         $msgRepo->insert($msg);
         $db = new WPAM_Data_DataAccess();
         $msgRepo = $db->getMessageRepository();
         $msg = new WPAM_Data_Models_MessageModel();
         $msg->content = "Thank you. Your registration is now complete. You can log into the affiliate area and begin promoting.";
         $msg->name = 'aff_app_submitted_auto_approved';
         $msg->type = 'web';
         $msg->use = 'Displayed to a newly registered affiliate if automatic affiliate approval option is enabled.';
         $msgRepo->insert($msg);
     }
     //Add the default message insert code below (it will only add it if it doesn't exist already)
     $db = new WPAM_Data_DataAccess();
     $msgRepo = $db->getMessageRepository();
     $message = $msgRepo->loadBy(array('name' => 'affiliate_application_approved_email'));
     if ($message === NULL) {
         $msg = new WPAM_Data_Models_MessageModel();
         $msg->content = "Your affiliate account for {blogname} has been approved!. \n\nUsername: {affusername} \nPassword: {affpassword} \nLogin URL: {affloginurl} \n\nPlease log into your account to get referral code.";
         $msg->name = 'affiliate_application_approved_email';
         $msg->type = 'email';
         $msg->use = 'Body of e-mail sent to a newly registered affiliate immediately following their application being approved.';
         $msgRepo->insert($msg);
     }
     //Add other options below
     //add a new creative (default)
     $default_creative_id = get_option(WPAM_PluginConfig::$DefaultCreativeId);
     $db = new WPAM_Data_DataAccess();
     $creativesRepo = $db->getCreativesRepository();
     $create_new_creative = false;
     if (empty($default_creative_id)) {
         $create_new_creative = true;
     } else {
         if (!$creativesRepo->existsBy(array('creativeId' => $default_creative_id, 'status' => 'active'))) {
             $create_new_creative = true;
         }
     }
     if ($create_new_creative) {
         $model = new WPAM_Data_Models_CreativeModel();
         $model->dateCreated = time();
         $model->status = 'active';
         $model->type === 'text';
         $model->linkText = 'default affiliate link';
         $model->altText = '';
         $model->slug = site_url('/');
         $model->name = 'default creative';
         $id = $creativesRepo->insert($model);
         update_option(WPAM_PluginConfig::$DefaultCreativeId, $id);
         //Save the ID of the deafult creative
     }
 }