1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 
	<?php
defined( 'ABSPATH' ) || exit();
class WC_Stripe_API_Request_Filter {
    private $advanced_settings;
    
    public function __construct( $advanced_settings ) {
        $this->advanced_settings = $advanced_settings;
        $this->initialize();
    }
    private function initialize() {
        if ( $this->advanced_settings->is_fee_enabled() ) {
            add_filter( 'wc_stripe_payment_intent_args', array( $this, 'expand_balance_transaction' ) );
            add_filter( 'wc_stripe_payment_intent_confirmation_args', array( $this, 'expand_balance_transaction' ) );
            add_filter( 'wc_stripe_payment_intent_retrieve_args', array( $this, 'expand_balance_transaction' ) );
            add_filter( 'wc_stripe_payment_intent_capture_args', array( $this, 'expand_balance_transaction' ) );
            add_filter( 'wc_stripe_charge_order_args', array( $this, 'expand_balance_transaction_for_charge' ) );
        }
    }
    public function expand_balance_transaction( $args ) {
        if ( ! is_array( $args ) ) {
            $args = array();
        }
        $args['expand']   = isset( $args['expand'] ) ? $args['expand'] : array();
        $args['expand'][] = 'charges.data.balance_transaction';
        return $args;
    }
    public function expand_balance_transaction_for_charge( $args ) {
        $args['expand']   = isset( $args['expand'] ) ? $args['expand'] : array();
        $args['expand'][] = 'balance_transaction';
        return $args;
    }
}