/** * Default action handler for this page * * @param SS_HTTPRequest $request * @return Object AfterPurchasePage */ public function afterPurchase(SS_HTTPRequest $request) { if ($request->isGET()) { if ($this->validateClickBankRequest) { $cbreceipt = $request->getVar('cbreceipt'); $cbpop = $request->getVar('cbpop'); $name = $request->getVar('cname'); $email = $request->getVar('cemail'); if (!empty($cbreceipt) && !empty($cbpop)) { if (ClickBankManager::validate_afterpurchase_request($request->getVars())) { $member = DataObject::get_one('Member', "Email = '{$email}'"); // make the member status to logged-in if ($member && $this->loginAfterClickBankRequestIsValid) { $member->logIn(); } // few handy replacement texts $content = $this->Content; $content = str_replace('$CBReceipt', $cbreceipt, $content); $content = str_replace('$CBName', $name, $content); $data = array('Title' => $this->Title, 'Content' => $content); return $this->customise($data)->renderWith(array('AfterPurchasePage' => 'Page')); } } } else { $data = array('Title' => $this->Title, 'Content' => $this->Content); return $this->customise($data)->renderWith(array('AfterPurchasePage' => 'Page')); } } return $this->redirect('/server-error'); }
/** * Process IPN request from ClickBank. Only process POST request * * @param object $_POST * @return int HTTP code */ public function ipn(SS_HTTPRequest $request) { if ($request->isPost()) { if (ClickBankManager::validate_ipn_request($request->postVars())) { ClickBankManager::process_ipn_request($request->postVars()); return Director::get_status_code(); } } return ErrorPage::response_for(404); }
/** * Add config options in CMS site configuration section * * @see DataObjectDecorator::updateCMSFields() */ function updateCMSFields(&$fields) { // Show warning message if (!ClickBankManager::validate_required_modules()) { $fields->addFieldToTab("Root.ClickBank", new LiteralField("ClickBankWarningHeader", _t('ClickBank.MESSAGE_WARNINGMISSINGMODULE'))); } $fields->addFieldToTab("Root.ClickBank", new LiteralField('ClickBankIPNTitle', _t('ClickBank.CONFIG_GENERAL_SETTINGS_SECTION_TITLE'))); $fields->addFieldToTab("Root.ClickBank", new TextField('ClickBankID', _t('ClickBank.CONFIG_CLICKBANKID'))); $fields->addFieldToTab("Root.ClickBank", new TextField('ClickBankSecretKey', _t('ClickBank.CONFIG_SECRETKEY'))); $fields->addFieldToTab("Root.ClickBank", new TextField('ClickBankSkin', _t('ClickBank.CONFIG_SKINID'))); $clickBankHolder = DataObject::get_one('ClickBankHolder'); $site_ipn_url = ''; if ($clickBankHolder) { $site_ipn_url = Director::absoluteURL('/clickbank/ipn'); } $ipn_textfield = new ReadonlyField('ClickBankIpnUrl', _t('ClickBank.CONFIG_IPN_URL'), $site_ipn_url); $fields->addFieldToTab("Root.ClickBank", $ipn_textfield); $fields->addFieldToTab("Root.ClickBank", new LabelField('IpnUrlLabel', _t('ClickBank.CONFIG_IPN_URL_LABEL'))); //$fields->addFieldToTab("Root.ClickBank", new LiteralField('ClickBankAPI', _t('ClickBank.CONFIG_API_SECTION_TITLE'))); //$fields->addFieldToTab("Root.ClickBank", new TextField('ClickBankApiKey', _t('ClickBank.CONFIG_API_KEY'))); //$fields->addFieldToTab("Root.ClickBank", new TextField('ClickBankDeveloperApiKey', _t('ClickBank.CONFIG_API_DEVELOPER_KEY'))); //$fields->addFieldToTab("Root.ClickBank", new LiteralField('ClickBankSiteModeHeader', _t('ClickBank.CONFIG_SITE_MODE_SECTION_TITLE'))); //$fields->addFieldToTab("Root.ClickBank", new CheckboxField('ClickBankTestMode', _t('ClickBank.CONFIG_SITE_MODE'))); }