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 approveApplication($affiliateId, $bountyType, $bountyAmount) { if (!wp_get_current_user()->has_cap(WPAM_PluginConfig::$AdminCap)) { throw new Exception(__('Access denied.', 'affiliates-manager')); } if (!is_numeric($bountyAmount)) { throw new Exception(__('Invalid bounty amount.', 'affiliates-manager')); } if (!in_array($bountyType, array("fixed", "percent"))) { throw new Exception(__('Invalid bounty type.', 'affiliates-manager')); } $affiliateId = (int) $affiliateId; $db = new WPAM_Data_DataAccess(); $affiliate = $db->getAffiliateRepository()->load($affiliateId); if ($affiliate === null) { throw new Exception(__('Invalid affiliate', 'affiliates-manager')); } if ($affiliate->isPending()) { $userHandler = new WPAM_Util_UserHandler(); $userHandler->approveAffiliate($affiliate, $bountyType, $bountyAmount); return new JsonResponse(JsonResponse::STATUS_OK); } else { throw new Exception(__('Invalid state transition.', 'affiliates-manager')); } }