/** * 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; }
/** * 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; }