Handle set discount on having low price for few item

Handle discounts based on having low prices for a few items.

/**
* To handle the low price product in set discount. 
* Works from Discount rules v2.6.1
*/
add_filter('advanced_woo_discount_rules_matched_set_discount_range', function ($selected_bundle_range, $product, $rule, $cart_items, $is_cart){
    if(class_exists('\Wdr\App\Helpers\Woocommerce')){
        if($is_cart){
            if(!empty($selected_bundle_range->type) && $selected_bundle_range->type == 'fixed_set_price'){
                if(!empty($cart_items)){
                    $discounted_price = $selected_bundle_range->value;
                    $availableQty = $selected_bundle_range->from;
                    $splitted_discount = $discounted_price/$availableQty;
                    $adjust_discount = false;
                    $item_with_low_price = array();
                    $subtotal = $qty_to_apply = 0;
                    $discount_to_adjust = 0;
                    foreach ($cart_items as $cart_item){
                        if($rule->isFilterPassed($cart_item['data'])){
                            $product_price = $cart_item['data']->get_price();
                            $qty = isset($cart_item['quantity']) ? $cart_item['quantity'] : 0;
                            if($availableQty >= $qty){
                                $qty_to_apply = $qty;
                                $subtotal += $product_price*$qty;
                                $availableQty -= $qty_to_apply;
                            } else {
                                $qty_to_apply = $qty-$availableQty;
                                $subtotal += $product_price*($qty_to_apply);
                                $availableQty -= $qty_to_apply;
                            }

                            $cart_key = $cart_item['key'];
                            $info = array();
                            $info['adjustable_qty'] = $qty_to_apply;
                            if($splitted_discount > $product_price){
                                $adjust_discount = true;
                                $info['fixed_price'] = $product_price;
                                $discount_to_adjust += $info['negative_price'] = ($splitted_discount-$product_price)*$qty_to_apply;
                                $info['adjustable_price'] = 0;
                            } else {
                                $info['fixed_price'] = $splitted_discount;
                                $info['negative_price'] = 0;
                                $info['adjustable_price'] = $product_price - $splitted_discount;
                            }
                            $item_with_low_price[$cart_key] = $info;
                            if($availableQty <= 0){
                                break;
                            }
                        }
                    }

                    if($adjust_discount === true && $subtotal >= $discounted_price){
                        if($discount_to_adjust > 0){
                            foreach ($item_with_low_price as $key => $item){
                                $adjustable_price = $item['adjustable_price']*$qty_to_apply;
                                if($adjustable_price >= $discount_to_adjust){
                                    $item_with_low_price[$key]['fixed_price'] += $discount_to_adjust/$item['adjustable_qty'];
                                    $discount_to_adjust = 0;
                                } else if($adjustable_price > 0){
                                    $discount_to_adjust -= $adjustable_price;
                                    $item_with_low_price[$key]['fixed_price'] += $item['adjustable_price'];
                                }
                            }
                        }
                        $product_id = \Wdr\App\Helpers\Woocommerce::getProductId($product);
                        if(!empty($cart_items)){
                            foreach ($cart_items as $cart_item){
                                $key = $cart_item['key'];
                                $cart_item_product_id = \Wdr\App\Helpers\Woocommerce::getProductIdFromCartItem($cart_item);
                                if($cart_item_product_id == $product_id){
                                    if(isset($item_with_low_price[$key])){
                                        $selected_bundle_range->value = $item_with_low_price[$key]['fixed_price'] * $selected_bundle_range->from;
                                    }
                                    break;
                                }
                            }
                        }
                    }
                }
            }
        }
    }

    return $selected_bundle_range;
}, 10, 5);