Compatibility for YITH WooCommerce Product Bundles Premium

Ensure compatibility with YITH WooCommerce Product Bundles Premium.

// Use discount rule discount instead of YITH bundle discount
add_filter('yith_wcpb_bundled_item_calculated_discount', function($price, $yith_discount, $regular_price, $product_id) {
    if (function_exists('wc_get_product') && $product = wc_get_product($product_id)) {
        $discount = apply_filters('advanced_woo_discount_rules_get_product_discount_price_from_custom_price', $price, $product, 1, 0, 'discounted_price', true, true);
        if ($discount !== false) {
            $price = $regular_price - $discount;
        }
    }
    return $price;
}, 100, 4);

// Exclude child products from calculate discount for cart item
add_filter('advanced_woo_discount_rules_calculate_discount_for_cart_item', function ($calculate_discount, $cart_item){
    if(isset($cart_item['bundled_by']) && !empty($cart_item['bundled_by'])){
        $calculate_discount = false;
    }
    return $calculate_discount;
}, 100, 2);
add_filter('advanced_woo_discount_rules_include_cart_item_to_count_quantity', function($take_count, $cart_item){
    if(isset($cart_item['bundled_by']) && !empty($cart_item['bundled_by'])){
        $take_count = false;
    }
    return $take_count;
}, 100, 2);
add_filter('advanced_woo_discount_rules_process_cart_item_for_cheapest_rule', function($calculate_discount, $cart_item){
    if(isset($cart_item['bundled_by']) && !empty($cart_item['bundled_by'])){
        $calculate_discount = false;
    }
    return $calculate_discount;
}, 100, 2);