private function get_url($name) { $url = home_url('/'); $permalink = get_permalink(pronamic_pay_get_page_id($name)); if ($permalink) { $url = $permalink; } return $url; }
public static function update_payment($payment = null, $can_redirect = true) { if ($payment) { $gateway = Pronamic_WP_Pay_Plugin::get_gateway($payment->config_id); if ($gateway) { $old_status = strtolower($payment->status); if (strlen($old_status) <= 0) { $old_status = 'unknown'; } $gateway->update_status($payment); $new_status = strtolower($payment->status); pronamic_wp_pay_update_payment($payment); if (defined('DOING_CRON') && (empty($payment->status) || $payment->status === Pronamic_WP_Pay_Gateways_IDealAdvancedV3_Status::OPEN)) { $can_redirect = false; } do_action("pronamic_payment_status_update_{$payment->source}_{$old_status}_to_{$new_status}", $payment, $can_redirect); do_action("pronamic_payment_status_update_{$payment->source}", $payment, $can_redirect); do_action('pronamic_payment_status_update', $payment, $can_redirect); if ($can_redirect) { $url = home_url('/'); $page_id = null; switch ($payment->status) { case Pronamic_WP_Pay_Statuses::CANCELLED: $page_id = pronamic_pay_get_page_id('cancel'); break; case Pronamic_WP_Pay_Statuses::EXPIRED: $page_id = pronamic_pay_get_page_id('expired'); break; case Pronamic_WP_Pay_Statuses::FAILURE: $page_id = pronamic_pay_get_page_id('error'); break; case Pronamic_WP_Pay_Statuses::OPEN: $page_id = pronamic_pay_get_page_id('unknown'); break; case Pronamic_WP_Pay_Statuses::SUCCESS: $page_id = pronamic_pay_get_page_id('completed'); break; default: $page_id = pronamic_pay_get_page_id('unknown'); break; } if (!empty($page_id)) { $page_url = get_permalink($page_id); if (false !== $page_url) { $url = $page_url; } } wp_redirect($url); exit; } } } }