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); }
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; }
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); }
protected function getPaymentMethodFormResponse($affiliate, $request = array(), $validationResult = NULL) { add_action('wp_footer', array($this, 'onFooter')); $response = new WPAM_Pages_TemplateResponse('affiliate_cp_payment_details_simple'); $response->viewData['request'] = $request; $response->viewData['affiliate'] = $affiliate; $affiliateHelper = new WPAM_Util_AffiliateFormHelper(); $response->viewData['paymentMethods'] = $affiliateHelper->getPaymentMethods(); $response->viewData['validationResult'] = $validationResult; $response->viewData['nextStepUrl'] = $this->getLink(array('step' => 'submit_payment_details', 'action' => 'confirm')); //save for form validation in the footer $this->response = $response; return $response; }
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; }