Exemplo n.º 1
0
 public static function status_update(Pronamic_Pay_Payment $payment, $can_redirect = false)
 {
     $data = new Pronamic_WP_Pay_Extensions_S2Member_PaymentData(array('level' => get_post_meta($payment->get_id(), '_pronamic_payment_s2member_level', true), 'period' => get_post_meta($payment->get_id(), '_pronamic_payment_s2member_period', true)));
     $url = $data->get_normal_return_url();
     switch ($payment->status) {
         case Pronamic_WP_Pay_Statuses::CANCELLED:
             $url = $data->get_cancel_url();
             break;
         case Pronamic_WP_Pay_Statuses::EXPIRED:
             $url = $data->get_error_url();
             break;
         case Pronamic_WP_Pay_Statuses::FAILURE:
             $url = $data->get_error_url();
             break;
         case Pronamic_WP_Pay_Statuses::SUCCESS:
             $url = $data->get_success_url();
             break;
         case Pronamic_WP_Pay_Statuses::OPEN:
             $url = $data->get_normal_return_url();
             break;
     }
     if ($url && $can_redirect) {
         wp_redirect($url, 303);
         exit;
     }
 }
Exemplo n.º 2
0
 /**
  * Handle payment
  */
 public function handle_payment()
 {
     if (filter_has_var(INPUT_POST, 'pronamic_pay_s2member')) {
         $index = filter_input(INPUT_POST, 'pronamic_pay_s2member_index', FILTER_SANITIZE_STRING);
         $hash = filter_input(INPUT_POST, 'pronamic_pay_s2member_hash', FILTER_SANITIZE_STRING);
         $data = filter_input(INPUT_POST, 'pronamic_pay_s2member_data', FILTER_SANITIZE_STRING, FILTER_REQUIRE_ARRAY);
         if ($hash === $this->create_hash($data)) {
             // Config
             $config_id = get_option('pronamic_pay_s2member_config_id');
             // Gateway
             $gateway = Pronamic_WP_Pay_Plugin::get_gateway($config_id);
             // Data
             $data = new Pronamic_WP_Pay_Extensions_S2Member_PaymentData($data);
             $email = $data->get_email();
             if (!empty($email)) {
                 // Start
                 $payment = Pronamic_WP_Pay_Plugin::start($config_id, $gateway, $data);
                 update_post_meta($payment->get_id(), '_pronamic_payment_s2member_period', $data->get_period());
                 update_post_meta($payment->get_id(), '_pronamic_payment_s2member_level', $data->get_level());
                 update_post_meta($payment->get_id(), '_pronamic_payment_s2member_ccaps', $data->get_ccaps());
                 $error = $gateway->get_error();
                 if (is_wp_error($error)) {
                     // Set error message
                     $this->error[$index] = array(Pronamic_WP_Pay_Plugin::get_default_error_message());
                     foreach ($error->get_error_messages() as $message) {
                         $this->error[$index][] = $message;
                     }
                 } else {
                     // Redirect
                     $gateway->redirect($payment);
                 }
             }
         }
     }
 }