PageRenderTime 48ms CodeModel.GetById 22ms RepoModel.GetById 0ms app.codeStats 0ms

/controller/account/plan_switch.php

https://github.com/whale2/users
PHP | 38 lines | 34 code | 3 blank | 1 comment | 2 complexity | 71a7cd9d80ce90cafd0587023068974c MD5 | raw file
  1. <?php
  2. require_once(dirname(dirname(dirname(__FILE__))).'/config.php');
  3. require_once(dirname(dirname(dirname(__FILE__))).'/User.php');
  4. $user = User::require_login();
  5. $account = Account::getCurrentAccount($user);
  6. $data = explode('.',$_REQUEST['plan']);
  7. if(!isset($data[1]))
  8. $data[1] = NULL;
  9. session_start();
  10. try {
  11. # Check if plan and schedule exists
  12. if(!($plan = Plan::getPlan($data[0])))
  13. throw new Exception("Unknown plan '".$data[0].'"');
  14. if(!is_null($data[1]) && !($schedule = $plan->getPaymentSchedule($data[1])))
  15. throw new Exception("Unknown schedule '".$data[1]."' for plan '".$data[0]."'");
  16. } catch (Exception $e) {
  17. $_SESSION['message'][] = $e->getMessage();
  18. header('Location: '.$_SERVER['HTTP_REFERER']);
  19. exit;
  20. }
  21. if($account->getPlanID() != $data[0]) {
  22. if($account->activatePlan($data[0],$data[1]))
  23. $_SESSION['message'][] = "Plan activated";
  24. else
  25. $_SESSION['message'][] = "Error activating plan";
  26. } elseif(!is_null($data[1]) && $account->getScheduleID() != $data[1]) {
  27. if($account->setPaymentSchedule($data[1]))
  28. $_SESSION['message'][] = "Payment schedule changed";
  29. else
  30. $_SESSION['message'][] = "Error changing schedule";
  31. }
  32. header('Location: '.$_SERVER['HTTP_REFERER']);