WC_Gateway_Paypal::process_refund( int $order_id, float $amount = null, string $reason = '' )
Process a refund if supported.
Description Description
Parameters Parameters
- $order_id
-
(Required) Order ID.
- $amount
-
(Optional) Refund amount.
Default value: null
- $reason
-
(Optional) Refund reason.
Default value: ''
Return Return
(bool|WP_Error)
Source Source
File: includes/gateways/paypal/class-wc-gateway-paypal.php
371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 | public function process_refund( $order_id , $amount = null, $reason = '' ) { $order = wc_get_order( $order_id ); if ( ! $this ->can_refund_order( $order ) ) { return new WP_Error( 'error' , __( 'Refund failed.' , 'woocommerce' ) ); } $this ->init_api(); $result = WC_Gateway_Paypal_API_Handler::refund_transaction( $order , $amount , $reason ); if ( is_wp_error( $result ) ) { $this ->log( 'Refund Failed: ' . $result ->get_error_message(), 'error' ); return new WP_Error( 'error' , $result ->get_error_message() ); } $this ->log( 'Refund Result: ' . wc_print_r( $result , true ) ); switch ( strtolower ( $result ->ACK ) ) { // phpcs:ignore WordPress.NamingConventions.ValidVariableName.UsedPropertyNotSnakeCase case 'success' : case 'successwithwarning' : $order ->add_order_note( /* translators: 1: Refund amount, 2: Refund ID */ sprintf( __( 'Refunded %1$s - Refund ID: %2$s' , 'woocommerce' ), $result ->GROSSREFUNDAMT, $result ->REFUNDTRANSACTIONID ) // phpcs:ignore WordPress.NamingConventions.ValidVariableName.UsedPropertyNotSnakeCase ); return true; } return isset( $result ->L_LONGMESSAGE0 ) ? new WP_Error( 'error' , $result ->L_LONGMESSAGE0 ) : false; // phpcs:ignore WordPress.NamingConventions.ValidVariableName.UsedPropertyNotSnakeCase } |