Exemplo n.º 1
0
 /**
  * Payment redirect URL fitler.
  *
  * @since 1.0.1
  * @param string               $url
  * @param Pronamic_Pay_Payment $payment
  * @return string
  */
 public static function redirect_url($url, $payment)
 {
     global $transaction;
     $transaction_id = $payment->get_source_id();
     $transaction = new MeprTransaction($transaction_id);
     switch ($payment->get_status()) {
         case Pronamic_WP_Pay_Statuses::CANCELLED:
         case Pronamic_WP_Pay_Statuses::EXPIRED:
         case Pronamic_WP_Pay_Statuses::FAILURE:
             $product = $transaction->product();
             $url = add_query_arg(array('action' => 'payment_form', 'txn' => $transaction->trans_num, '_wpnonce' => wp_create_nonce('mepr_payment_form')), $product->url());
             break;
         case Pronamic_WP_Pay_Statuses::SUCCESS:
             // @see https://gitlab.com/pronamic/memberpress/blob/1.2.4/app/models/MeprOptions.php#L768-782
             $mepr_options = MeprOptions::fetch();
             $product = new MeprProduct($transaction->product_id);
             $sanitized_title = sanitize_title($product->post_title);
             $url = $mepr_options->thankyou_page_url('membership=' . $sanitized_title . '&trans_num=' . $transaction->trans_num);
             break;
         case Pronamic_WP_Pay_Statuses::OPEN:
         default:
             break;
     }
     return $url;
 }
Exemplo n.º 2
0
 /**
  * Constructs and initialize payment data object.
  */
 public function __construct(MeprTransaction $txn)
 {
     parent::__construct();
     $this->amount = $txn->total;
     $this->user = $txn->user();
     $this->product = $txn->product();
     $this->txn_id = $txn->id;
 }