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); }
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); }
public function processRequest($request) { $db = new WPAM_Data_DataAccess(); if (isset($request['viewDetail']) && is_numeric($request['viewDetail'])) { $affiliateFields = $db->getAffiliateFieldRepository()->loadMultipleBy(array('enabled' => true), array('order' => 'asc')); $id = (int) $request['viewDetail']; $model = $db->getAffiliateRepository()->load($id); if ($model == null) { wp_die("Invalid affiliate ID."); } if (isset($request['action']) && $request['action'] == 'saveInfo') { $validator = new WPAM_Validation_Validator(); //validate bounty type & amount if they're in the appropriate status if (!$model->isPending() && !$model->isBlocked() && !$model->isDeclined()) { $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()); } } $validator->addValidator('ddPaymentMethod', new WPAM_Validation_SetValidator(array('check', 'paypal'))); if ($request['ddPaymentMethod'] === 'paypal') { $validator->addValidator('txtPaypalEmail', new WPAM_Validation_EmailValidator()); } } $affiliateHelper = new WPAM_Util_AffiliateFormHelper(); $vr = $affiliateHelper->validateForm($validator, $request, $affiliateFields, TRUE); if ($vr->getIsValid()) { $affiliateHelper->setModelFromForm($model, $affiliateFields, $request); $affiliateHelper->setPaymentFromForm($model, $request); $db->getAffiliateRepository()->update($model); } else { return $this->getDetailForm($affiliateFields, $model, $request, $vr); } } return $this->getDetailForm($affiliateFields, $model, $request); } else { //Show all the affiliates list. //Lets include the affiliates_list.php file $response = new WPAM_Pages_TemplateResponse('admin/affiliates_list'); } return $response; }
protected function doContactInfo($request, $affiliate) { add_action('wp_footer', array($this, 'onFooter')); $db = new WPAM_Data_DataAccess(); $affiliateFields = $db->getAffiliateFieldRepository()->loadMultipleBy(array('enabled' => true), array('order' => 'asc')); $response = new WPAM_Pages_TemplateResponse('affiliate_cp_contactinfo'); $response->viewData['affiliateFields'] = $affiliateFields; $affiliateHelper = new WPAM_Util_AffiliateFormHelper(); $response->viewData['paymentMethods'] = $affiliateHelper->getPaymentMethods(); $response->viewData['paymentMethod'] = isset($request['ddPaymentMethod']) ? $request['ddPaymentMethod'] : $affiliate->paymentMethod; $response->viewData['paypalEmail'] = isset($request['txtPaypalEmail']) ? $request['txtPaypalEmail'] : $affiliate->paypalEmail; $user = wp_get_current_user(); if (isset($request['action']) && $request['action'] == 'saveInfo') { $validator = new WPAM_Validation_Validator(); $validator->addValidator('ddPaymentMethod', new WPAM_Validation_SetValidator(array('check', 'paypal'))); if ($request['ddPaymentMethod'] === 'paypal') { $validator->addValidator('txtPaypalEmail', new WPAM_Validation_EmailValidator()); } $vr = $affiliateHelper->validateForm($validator, $request, $affiliateFields, TRUE); if ($vr->getIsValid()) { //#79 hackery to do the "normal" WP email approval process require_once ABSPATH . 'wp-admin/includes/ms.php'; $_POST['email'] = $request['_email']; $_POST['user_id'] = $user->ID; unset($request['_email']); global $errors; //*try* to save email send_confirmation_on_profile_email(); if (!empty($errors->errors)) { $vr->addError(new WPAM_Validation_ValidatorError('_email', $_POST['email'] . " " . $errors->get_error_message('user_email'))); $response->viewData['validationResult'] = $vr; $response->viewData['affiliate'] = $affiliate; //save for form validation in the footer $this->response = $response; return $response; } $affiliateHelper->setModelFromForm($affiliate, $affiliateFields, $request); $affiliateHelper->setPaymentFromForm($affiliate, $request); $db->getAffiliateRepository()->update($affiliate); } else { $response->viewData['validationResult'] = $vr; } } $new_email = get_option($user->ID . '_new_email'); if ($new_email && $new_email != $user->user_email) { $response->viewData['newEmail'] = $new_email; $response->viewData['userId'] = $user->ID; } $response->viewData['affiliate'] = $affiliate; //save for form validation in the footer $this->response = $response; return $response; }
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; }
public function processRequest($request) { $db = new WPAM_Data_DataAccess(); if (isset($request['viewDetail']) && is_numeric($request['viewDetail'])) { $affiliateFields = $db->getAffiliateFieldRepository()->loadMultipleBy(array('enabled' => true), array('order' => 'asc')); $id = (int) $request['viewDetail']; $model = $db->getAffiliateRepository()->load($id); if ($model == null) { wp_die("Invalid affiliate ID."); } if (isset($request['action']) && $request['action'] == 'saveInfo') { $validator = new WPAM_Validation_Validator(); //validate bounty type & amount if they're in the appropriate status if (!$model->isPending() && !$model->isBlocked() && !$model->isDeclined()) { $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()); } } $validator->addValidator('ddPaymentMethod', new WPAM_Validation_SetValidator(array('check', 'paypal'))); if ($request['ddPaymentMethod'] === 'paypal') { $validator->addValidator('txtPaypalEmail', new WPAM_Validation_EmailValidator()); } } $affiliateHelper = new WPAM_Util_AffiliateFormHelper(); $vr = $affiliateHelper->validateForm($validator, $request, $affiliateFields, TRUE); if ($vr->getIsValid()) { $affiliateHelper->setModelFromForm($model, $affiliateFields, $request); $affiliateHelper->setPaymentFromForm($model, $request); $db->getAffiliateRepository()->update($model); } else { return $this->getDetailForm($affiliateFields, $model, $request, $vr); } } return $this->getDetailForm($affiliateFields, $model, $request); } else { if (isset($_GET['orderby'])) { $current_orderby = $_GET['orderby']; } else { $current_orderby = 'affiliateId'; } if (isset($_GET['order']) && 'desc' == $_GET['order']) { $current_order = 'desc'; } else { $current_order = 'asc'; } $orderBy = array($current_orderby => $current_order); $filterWhere = array(); $minPayout = NULL; if (!isset($request['statusFilter'])) { $request['statusFilter'] = 'all_active'; } if ($request['statusFilter'] !== 'all') { switch ($request['statusFilter']) { case 'all_active': $filterWhere['status'] = array('NOT IN', array('declined', 'blocked', 'inactive')); break; case 'all': break; case 'active': case 'applied': case 'approved': case 'confirmed': case 'declined': case 'blocked': case 'inactive': $filterWhere['status'] = $request['statusFilter']; default: break; } } if (isset($request['overPayout']) && $request['overPayout'] === 'true') { $minPayout = get_option(WPAM_PluginConfig::$MinPayoutAmountOption); } $models = $db->getAffiliateRepository()->loadAffiliateSummary($filterWhere, $minPayout, $orderBy); $response = new WPAM_Pages_TemplateResponse('admin/affiliates_list'); $response->viewData['minPayoutAmount'] = get_option(WPAM_PluginConfig::$MinPayoutAmountOption); $response->viewData['affiliates'] = $models; $response->viewData['request'] = $request; $response->viewData['statusFilters'] = array('all_active' => __('All Active', 'wpam'), 'all' => __('All (Including Closed)', 'wpam'), '---' => '---', 'active' => __('Status: Active', 'wpam'), 'applied' => __('Status: Applied', 'wpam'), 'approved' => __('Status: Approved', 'wpam'), 'confirmed' => __('Status: Confirmed', 'wpam'), 'declined' => __('Status: Declined', 'wpam'), 'blocked' => __('Status: Blocked', 'wpam'), 'inactive' => __('Status: Inactive', 'wpam')); $response->viewData['current_orderby'] = $current_orderby; $response->viewData['current_order'] = $current_order; } return $response; }