PPOM for WooCommerce plugin v32 compatibility (apply discount only on base price of product)

Ensure discounts affect only base product price with PPOM v32.

// Tested in PPOM for WooCommerce plugin version 32.0
if (!function_exists('advanced_woo_discount_rules_get_ppom_new_total_addon_price')) {
    function advanced_woo_discount_rules_get_ppom_new_total_addon_price($cart_item) {
        if (isset($cart_item['ppom']['fields']) && function_exists('ppom_get_field_prices') && function_exists('ppom_price_get_addon_total')) {
            $product_id        = isset( $cart_item['product_id'] ) ? $cart_item['product_id'] : '';
            $variation_id      = isset( $cart_item['variation_id'] ) ? $cart_item['variation_id'] : '';
            $ppom_fields_post  = $cart_item['ppom']['fields'];
            $product_quantity  = floatval( $cart_item['quantity'] );
            $ppom_field_prices = ppom_get_field_prices( $ppom_fields_post, $product_id, $product_quantity, $variation_id );
            return ppom_price_get_addon_total( $ppom_field_prices );
        }
        return 0;
    }

    // add_filter('advanced_woo_discount_rules_product_original_price_on_before_calculate_discount', function($product_price, $product, $quantity, $cart_item, $calculate_discount_from) {
    //     if (isset($cart_item['ppom']['fields'])) {
    //         $total_addon_price = advanced_woo_discount_rules_get_ppom_new_total_addon_price($cart_item);
    //         return $product_price - $total_addon_price;
    //     }
    //     return $product_price;
    // }, 10, 5);
    
    // add_filter('advanced_woo_discount_rules_product_price_on_before_calculate_discount', function($product_price, $product, $quantity, $cart_item, $calculate_discount_from) {
    //     if (isset($cart_item['ppom']['fields'])) {
    //         $total_addon_price = advanced_woo_discount_rules_get_ppom_new_total_addon_price($cart_item);
    //         return $product_price - $total_addon_price;
    //     }
    //     return $product_price;
    // }, 10, 5);

    add_filter('advanced_woo_discount_rules_discounted_price_of_cart_item', function($price, $cart_item, $cart_object, $cart_item_key) {
        if (isset($cart_item['ppom']['fields'])) {
            $total_addon_price = advanced_woo_discount_rules_get_ppom_new_total_addon_price($cart_item);
            return $price + $total_addon_price;
        }
        return $price;
    }, 10, 4);

    add_filter('advanced_woo_discount_rules_cart_strikeout_price_html', function($html, $old_html, $cart_item, $cart_item_key) {
        if (isset($cart_item['ppom']['fields']) && isset($cart_item['data']) && function_exists('wc_get_price_to_display')) {
            $total_addon_price = advanced_woo_discount_rules_get_ppom_new_total_addon_price($cart_item);
            if ($total_addon_price > 0) {
                $html .= ' + ' . wc_price(wc_get_price_to_display($cart_item['data'], ['price' => $total_addon_price, 'display_context' => 'cart']));
            }
        }
        return $html;
    }, 10, 4);
}