Give_Payment::refund PHP 메소드

refund() 공개 메소드

Change the status of the payment to refunded, and run the necessary changes
부터: 1.5
public refund ( ) : void
리턴 void
    public function refund()
    {
        $this->old_status = $this->status;
        $this->status = 'refunded';
        $this->pending['status'] = $this->status;
        $this->save();
    }

Usage Example

예제 #1
0
 /**
  * Test Refund Without Affecting Stats
  */
 public function test_refund_without_affecting_stats()
 {
     add_filter('give_decrease_earnings_on_undo', '__return_false');
     add_filter('give_decrease_sales_on_undo', '__return_false');
     add_filter('give_decrease_customer_value_on_refund', '__return_false');
     add_filter('give_decrease_customer_purchase_count_on_refund', '__return_false');
     add_filter('give_decrease_store_earnings_on_refund', '__return_false');
     $payment = new Give_Payment($this->_payment_id);
     $payment->status = 'complete';
     $payment->save();
     $customer = new Give_Customer($payment->customer_id);
     $form = new Give_Donate_Form($payment->form_id);
     $customer_sales = $customer->purchase_count;
     $customer_earnings = $customer->purchase_value;
     $form_sales = $form->sales;
     $form_earnings = $form->earnings;
     $site_earnings = give_get_total_earnings();
     $site_sales = give_get_total_sales();
     $payment->refund();
     wp_cache_flush();
     $customer = new Give_Customer($payment->customer_id);
     $form = new Give_Donate_Form($payment->form_id);
     $this->assertEquals($customer_earnings, $customer->purchase_value);
     $this->assertEquals($customer_sales, $customer->purchase_count);
     $this->assertEquals($form_earnings, $form->earnings);
     $this->assertEquals($form_sales, $form->sales);
     $this->assertEquals($site_earnings, give_get_total_earnings());
     // Site sales are based off 'publish' & 'revoked' status. So it reduces this count
     $this->assertEquals($site_sales - 1, give_get_total_sales());
     remove_filter('give_decrease_earnings_on_undo', '__return_false');
     remove_filter('give_decrease_sales_on_undo', '__return_false');
     remove_filter('give_decrease_customer_value_on_refund', '__return_false');
     remove_filter('give_decrease_customer_purchase_count_on_refund', '__return_false');
     remove_filter('give_decrease_store_earnings_on_refund', '__return_false ');
 }