Try to edit the file wp-content\themes\woodmart\inc\integrations\woocommerce\modules\dynamic-discounts\class-frontend.php
and replace the code
'value' => 'amount' === $rules['_woodmart_discount_type'] ? apply_filters( 'woodmart_pricing_amount_discounts_value', $rules['_woodmart_discount_amount_value'] ) : $rules['_woodmart_discount_percentage_value'],
with this
'value' => 'amount' === $rules['_woodmart_discount_type'] ? apply_filters( 'woodmart_product_pricing_amount_discounts_value', $rules['_woodmart_discount_amount_value'] ) : $rules['_woodmart_discount_percentage_value'],
And after this, add the following snippet to the function.php file in your child theme
add_filter(
'woodmart_pricing_amount_discounts_value',
function ( $discount ) {
global $product;
if ( ! $product || ! wc_tax_enabled() || 'incl' !== get_option( 'woocommerce_tax_display_shop' ) ) {
return $discount;
}
$tax_rates = WC_Tax::get_rates( $product->get_tax_class() );
$taxes = WC_Tax::calc_tax( $discount, $tax_rates, false );
if ( 'yes' === get_option( 'woocommerce_tax_round_at_subtotal' ) ) {
$taxes_total = array_sum( $taxes );
} else {
$taxes_total = array_sum( array_map( 'wc_round_tax_total', $taxes ) );
}
$discount_price = $discount + $taxes_total;
if ( ! is_numeric( $discount_price ) ) {
$discount_price = floatval( $discount_price );
}
$discount_price = round( $discount_price, wc_get_price_decimals() );
return $discount_price;
}
);