private function onPurchase() { if (false !== ($error = GWF_Form::validateCSRF_WeakS())) { return GWF_HTML::error('Purchase GWF Modules', $error) . $this->templatePurchase(); } if (!isset($_POST['mod']) || !is_array($_POST['mod'])) { return $this->module->error('err_select_modules') . $this->templatePurchase(); // return GWF_HTML::err('ERR_GENERAL', array( __FILE__, __LINE__)).$this->templatePurchase(); } $purchased_modules = array(); foreach ($_POST['mod'] as $mname => $yes) { if (isset($this->modules[$mname])) { $purchased_modules[] = $mname; } } if (count($purchased_modules) === 0) { return $this->module->error('err_select_modules') . $this->templatePurchase(); } $designs = GWF_Design::getDesigns(); $purchased_designs = array(); foreach ($_POST['design'] as $dname => $yes) { if (array_key_exists($dname, $designs)) { $purchased_designs[] = $dname; } } $user = GWF_User::getStaticOrGuest(); $userid = GWF_Session::getUserID(); if (false === ($client = GWF_Client::getClient($userid))) { return GWF_HTML::err('ERR_DATABASE', array(__FILE__, __LINE__)) . $this->templatePurchase(); } $order = new GWF_ClientOrder(array('vsco_uid' => $userid, 'vsco_modules' => implode(',', $purchased_modules), 'vsco_designs' => implode(',', $purchased_designs))); Module_Payment::saveTempOrder($order); $tVars = array('order' => Module_Payment::displayOrderS($this->module, $order, $user)); return $this->module->template('order.tpl', $tVars); }
public function getOrderPrice(GWF_User $user) { $client = GWF_Client::getByID($user->getID()); $have_mods = $client->getModuleNames(); $new_mods = $this->getModules(); $price = 0; foreach ($new_mods as $mod) { $name = $mod->getName(); if (!in_array($name, $have_mods, true)) { $price += $mod->getPrice(); } } $have_designs = $client->getDesignNames(); $new_designs = $this->getDesignNames(); $designs = GWF_Design::getDesigns(); foreach ($new_designs as $design) { if (!in_array($design, $have_designs, true)) { $price += $designs[$design]; } } return $price; }