• Resolved Saskia Teichmann

    (@jyria)


    Hello WooCommerce Support Team,

    I’m following up on the longstanding thread “Problem with coupon value if product prices add without VAT” (originally posted in 2022). Unfortunately, the issue persists in 2025: fixed-value coupons are still being recalculated based on the customer’s delivery address and corresponding tax rate, rather than applying a true fixed discount.

    Importantly, this problem only occurs in shops where product prices are stored exclusive of tax, which is the standard setup for any professional EU store. In Europe, maintaining net prices in the catalog is essential for legal compliance and accurate bookkeeping—but it shouldn’t break basic coupon functionality. The Issue

    • Expected behavior: A €10 coupon always subtracts €10 from the order total after taxes, no matter which tax rate applies.
    • Current behavior: When the customer’s delivery country has a reduced or zero tax rate, the discount is proportionally reduced (e.g. €10 + whatever tax rate), causing confusion and accounting headaches.

    Why This Matters

    1. EU Compliance: Most EU shops manage prices net of VAT. A reliable “€10 off” must remain consistent, regardless of destination VAT rules.
    2. Consistency: Merchants and customers expect a fixed discount to remain the same, independent of tax.
    3. Reporting & Accounting: Variable coupon values complicate sales reports, revenue recognition, and tax filings.
    4. Developer Overhead: Numerous threads since 2012—and still in 2025—show that developers resort to custom snippets for a problem that should be solved in core.

    Proposed Solution

    Add an option on the coupon edit screen:

    ☐ Apply fixed coupon amount after tax
    When enabled, the coupon value is deducted from the cart’s gross total and remains the same across all tax rates and countries—ideal for shops using net-based pricing.

    Example Implementation Sketch

    // Apply fixed coupon amount after tax
    add_filter( 'woocommerce_coupon_get_discount_amount', function( $discount, $discounting_amount, $cart_item, $single, $coupon ) {
        if ( $coupon->get_meta( 'apply_after_tax', true ) ) {
            // Use line total including tax
            $line_total_incl_tax = wc_get_price_including_tax( $cart_item['data'], [
                'qty' => $cart_item['quantity']
            ] );
            $discount = min( $coupon->get_amount(), $line_total_incl_tax );
        }
        return $discount;
    }, 10, 5 );
    
    • Meta field apply_after_tax reflects the checkbox state.
    • The filter woocommerce_coupon_get_discount_amount runs after tax calculations, ensuring the full coupon value applies.

    I’d greatly appreciate it if you could consider integrating this as a stable, configurable feature in WooCommerce core. It would save countless hours of custom development and ensure that professional EU shops—where net pricing is a necessity—can rely on precise, consistent coupon behavior.

    Thank you for your time and for your continued work on WooCommerce!

    Best regards,
    Saskia Teichmann

    • This topic was modified 4 months ago by Saskia Teichmann. Reason: structure and reasoning
Viewing 7 replies - 1 through 7 (of 7 total)
  • Thread Starter Saskia Teichmann

    (@jyria)

    Hello WooCommerce Support Team,

    I’m excited to share that I’ve developed a small plugin – Tax‑Proof Coupons for WooCommerce – which addresses the exact issue described in this thread. With Tax‑Proof Coupons for WooCommerce, any fixed-value cart coupon will now:

    1. Apply after tax rather than being adjusted by the customer’s VAT rate.
    2. Guarantee the coupon’s face value (e.g. €150) is deducted in full, regardless of the delivery country’s tax rules.
    3. Require no custom snippets or filters—just install, activate, and check the new “Apply coupon after tax” box on your fixed-cart coupons.

    How to try it:

    1. Download or clone the plugin from: https://github.com/s-a-s-k-i-a/tax-proof-coupons
    2. Install via Plugins screen in your WordPress Admin
    3. Activate Tax‑Proof Coupons in Plugins > Installed Plugins.
    4. Edit any Fixed Cart coupon in WooCommerce and enable Apply coupon after tax.

    Once enabled, the plugin will convert the gross coupon value into the correct net discount under the hood, ensuring the final reduction always matches the coupon amount you set—no matter the VAT rate or customer location.

    I’d love to hear your feedback and any testing results you have. If you run into questions or edge cases, please let me know via github issue and I’ll gladly iterate.

    Thank you for all your hard work on WooCommerce and for considering Tax‑Proof Coupons for WooCommerce as a solution to this long-standing issue!

    Saskia

    Plugin Support Moses M. (woo-hc)

    (@mosesmedh)

    Hi @jyria,

    Thanks for bringing this to our attention and for sharing the workaround you found—I can imagine how frustrating this must have been.

    From what you’ve described, it sounds similar to an issue recently closed on GitHub, which includes instructions here: https://github.com/woocommerce/woocommerce/issues/31618#issuecomment-2891325385.

    However, I also found a related issue that’s still open: https://github.com/woocommerce/woocommerce/issues/25199. This suggests the matter may still be under review, but it’s definitely worth reviewing the instructions in the earlier link.

    Feel free to share your workaround as a comment on the open GitHub thread so others can benefit as well.

    Let me know if you have any further questions.

    Thread Starter Saskia Teichmann

    (@jyria)

    Hej @mosesmedh

    Thanks for your quick reply and for pointing me to those GitHub threads – I really appreciate you taking the time.

    I’ve reviewed the closed issue #31618, and I see the suggestion there is to switch all storefront displays to net prices if your product inputs are set “exclusive of tax” (GitHub). In other words, the proposal is that you simply show every price in the shop without VAT, and avoid mixed inclusive/exclusive displays altogether.

    Unfortunately, in the EU that approach isn’t viable. By law we must display tax-inclusive prices in the shop to end-customers.- even when catalog prices are stored net of VAT – so converting the entire storefront to net-only pricing would put us out of compliance with consumer protection and VAT regulations.

    I also checked the still-open issue #25199, which requests built-in support for choosing whether a coupon applies before or after tax (GitHub). It looks like the core team hasn’t yet provided a configurable flag for “apply after tax,” and that aligns with everything I’m seeing in WooCommerce’s current code path. My current thinking

    1. Net-only storefront isn’t an option in the EU.
      EU law requires customer-facing prices include VAT, so we can’t just flip all displays to net.
    2. Core still lacks an “after-tax” coupon flag.
      The open issue confirms this is under consideration but not merged yet.
    3. My plugin offers a practical solution to this issue right now.
      With Tax-Proof Coupons, you get an “Apply coupon after tax” checkbox on fixed-cart coupons. Under the hood it converts your gross coupon value into the correct net discount, then hands it back to WooCommerce so the final price shown remains exactly your coupon amount – regardless of delivery country or VAT rate.

    I’d be happy to share more testing results or examples if it helps move the discussion forward. Please let me know if you have any questions or alternative ideas – thanks again for your help!

    Saskia

    Hi @jyria,

    Thanks so much for taking the time to review those issues and share your thoughts so clearly, Saskia.

    You’re absolutely right – displaying tax-inclusive prices is a legal requirement in the EU, and switching to a net-only storefront isn’t a viable workaround. I also agree that the lack of a built-in “apply coupon after tax” option in WooCommerce core is a limitation for stores handling VAT.

    Your solution with the Tax-Proof Coupons plugin sounds like a practical and thoughtful workaround. The ability to preserve the intended coupon value across different VAT scenarios is a valuable addition for EU-based stores.

    If you’re open to it, creating a pull request based on your implementation could be a great way to help move the open discussion forward. That would give the core team something concrete to review and potentially merge.

    Thanks again for contributing to this conversation!

    Plugin Support Chris Moreira – a11n

    (@chrism245)

    Since there’s been no recent activity on this thread, I’m marking it as resolved. Don’t hesitate to start a new thread if you need help in the future. We’d love your feedback – please leave us a review: https://wordpress.org/support/plugin/woocommerce/reviews/

    Thread Starter Saskia Teichmann

    (@jyria)

    Hello there!

    My plugin has passed WP Plugins Review and is now available for installation. It can be found here on wordpress.org or in your WordPress Admin > plugins > Repository

    https://wordpress.org/plugins/taxproof-coupons-for-woocommerce/

    Plugin Support Moses M. (woo-hc)

    (@mosesmedh)

    This is a good news @jyria,

    Thank you for creating such a great solution. I’m sure anyone in need of this feature will find it very useful. Well done!

Viewing 7 replies - 1 through 7 (of 7 total)

You must be logged in to reply to this topic.