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