diff options
-rw-r--r-- | plugin/GNU-Taler-Payment-Gateway/class-wc-gnutaler-gateway.php | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/plugin/GNU-Taler-Payment-Gateway/class-wc-gnutaler-gateway.php b/plugin/GNU-Taler-Payment-Gateway/class-wc-gnutaler-gateway.php index db2b6a5..16d7284 100644 --- a/plugin/GNU-Taler-Payment-Gateway/class-wc-gnutaler-gateway.php +++ b/plugin/GNU-Taler-Payment-Gateway/class-wc-gnutaler-gateway.php @@ -818,6 +818,9 @@ function gnutaler_init_gateway_class() $refund_url) ); } return true; + case 403: + return new WP_Error( 'error', + __('Refunds are disabled for this order. Check the refund_delay option for the Taler payment plugin.', 'gnutaler' ) ); case 404: $refund_error = json_decode ($refund_body, $assoc=true); if (! $refund_error) @@ -847,9 +850,15 @@ function gnutaler_init_gateway_class() return new WP_Error( 'error', __('Wire transfer already happened. It is too late for a refund with Taler!', 'gnutaler' ) ); default: + $refund_error = json_decode ($refund_body, $assoc=true); + if (! $refund_error) + $ec = $refund_error['code']; + else + $ec = 0; return new WP_Error( 'error', - sprintf( __('Unexpected failure %s from Taler backend', 'gnutaler' ), - $refund_http_status) ); + sprintf( __('Unexpected failure %s/%s from Taler backend', 'gnutaler' ), + $refund_http_status, + $ec) ); } } |