/** * Check whether a refund is made in full. * * @param WC_Order $order Order object * * @return bool True if order is fully refunded, False otherwise */ public function isFullyRefunded($order) { if (!empty($order) && $order->get_remaining_refund_amount() > 0 || !empty($order) && $order->has_free_item() && $order->get_remaining_refund_items() > 0) { // Order partially refunded return false; } else { // Order fully refunded return true; } }
/** * Test: get_remaining_refund_amount */ function test_get_remaining_refund_amount() { $object = new WC_Order(); $object->set_total(400); $id = $object->save(); wc_create_refund(array('order_id' => $id, 'amount' => '100', 'line_items' => array())); $this->assertEquals(300, $object->get_remaining_refund_amount()); }