WooCommerce Subscription compatible - apply discount only for the initial order

WooCommerce Subscription compatible - apply discount only for the initial order

add_filter('woo_discount_rules_has_price_override', '__return_true', 10);

function woocommerce_after_calculate_totals_woo_discount_and_subscription_compatible(){
    remove_action('woocommerce_after_calculate_totals', 'woocommerce_after_calculate_totals_woo_discount_and_subscription_compatible', 99999);
    if(!empty(WC()->cart)){
        if(!empty(WC()->cart->recurring_carts)){
            foreach (WC()->cart->recurring_carts as $key => $recurring_carts){
                if(!empty($recurring_carts)){
                    if(isset($recurring_carts->cart_contents)){
                        $cart_contents = $recurring_carts->cart_contents;
                        if(!empty($cart_contents)){
                            foreach ($cart_contents as $cart_key => $recurring_cart){
                                if(isset($recurring_cart['woo_discount'])){
                                    if(isset($recurring_cart['woo_discount']['original_price'])){
                                        $recurring_cart['data']->set_price($recurring_cart['woo_discount']['original_price']);
                                    }
                                }
                            }
                        }
                        $recurring_carts->calculate_totals();
                        global $flycart_woo_discount_rules;
                        if(!empty($flycart_woo_discount_rules)){
                            if(!empty($flycart_woo_discount_rules->discountBase)){
                                $flycart_woo_discount_rules->discountBase->handlePriceDiscount();
                                if(class_exists('WC_Cart_Totals')){
                                    remove_filter( 'woocommerce_calculated_total', 'WC_Subscriptions_Cart::calculate_subscription_totals', 1000, 2 );
                                    new WC_Cart_Totals( WC()->cart );
                                    add_filter( 'woocommerce_calculated_total', 'WC_Subscriptions_Cart::calculate_subscription_totals', 1000, 2 );
                                }
                            }
                        }
                    }
                }

            }
        }
    }
    add_action('woocommerce_after_calculate_totals', 'woocommerce_after_calculate_totals_woo_discount_and_subscription_compatible', 99999);
}

add_action('woocommerce_after_calculate_totals', 'woocommerce_after_calculate_totals_woo_discount_and_subscription_compatible', 99999);