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: ''


Top ↑

Return Return

(bool|WP_Error)


Top ↑

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
}


Top ↑

User Contributed Notes User Contributed Notes

You must log in before being able to contribute a note or feedback.