Example #1
0
 /**
  * Update lead status of the specified payment
  *
  * @param string $payment
  */
 public static function update_status(Pronamic_Pay_Payment $payment, $can_redirect = false)
 {
     if (self::SLUG === $payment->get_source()) {
         $id = $payment->get_source_id();
         $order = Pronamic_WP_Pay_Extensions_ClassiPress_ClassiPress::get_order_by_id($id);
         $data = new Pronamic_WP_Pay_Extensions_ClassiPress_PaymentData($order);
         $url = $data->get_normal_return_url();
         switch ($payment->status) {
             case Pronamic_WP_Pay_Statuses::CANCELLED:
                 break;
             case Pronamic_WP_Pay_Statuses::EXPIRED:
                 break;
             case Pronamic_WP_Pay_Statuses::FAILURE:
                 break;
             case Pronamic_WP_Pay_Statuses::SUCCESS:
                 if (!Pronamic_WP_Pay_Extensions_ClassiPress_Order::is_completed($order)) {
                     Pronamic_WP_Pay_Extensions_ClassiPress_ClassiPress::process_ad_order($id);
                     Pronamic_WP_Pay_Extensions_ClassiPress_ClassiPress::process_membership_order($order);
                     Pronamic_WP_Pay_Extensions_ClassiPress_ClassiPress::update_payment_status_by_txn_id($id, Pronamic_WP_Pay_Extensions_ClassiPress_PaymentStatuses::COMPLETED);
                 }
                 $url = $data->get_success_url();
                 break;
             case Pronamic_WP_Pay_Statuses::OPEN:
                 break;
             default:
                 break;
         }
         if ($can_redirect) {
             wp_redirect($url, 303);
             exit;
         }
     }
 }