Support » Plugin: WooCommerce » Coupons don’t consider cart fees as part of initial payment

  • Resolved nothin7


    Quick bug report: if you try to apply a coupon on a cart order that has a $0 subtotal but a nonzero cart fee, like WC()->cart->add_fee('fee', $80), the coupon doesn’t work:

    “Sorry, this coupon is only valid for an initial payment and the cart does not require an initial payment.”

    But…an $80 Total is indeed an “initial payment”.

    In my case, I offer subscriptions that start next year, but the customer pays a pro-rated amount for the current year as a cart fee. I don’t see why their coupon code shouldn’t work.

Viewing 2 replies - 1 through 2 (of 2 total)
  • Plugin Support Phillip C. a11n


    The issue is that coupons are only applicable to shipping and products but not things like cart fees or taxes. It’s set up this way to ensure that all tax and other fees are calculated correctly.

    If you need to synchronize subscriptions on your site and are using WooCommerce Subscriptions, I recommend reviewing the “Subscriptions Renewal Synchronization Guide”. Specifically, read the section on prorating the first payment here:

    If you were to apply this method to your Subscriptions then you would be able to synchronize them and prorate them in a way that a coupon would apply successfully. If you are using a different subscription plugin, I’d recommend reviewing your settings to see if there is a similar feature to create a prorated payment.


    Thread Starter nothin7


    Thanks. I don’t see how coupons couldn’t apply to cart fees in theory (add this as a feature request!), but you understand how Woo is structured better than I. Unfortately I only bill for 10 out of every 12 months, so prorating an annual subscription based on the number of days left doesn’t work. I’ll just put a note on the Cart explaining that coupons don’t apply to subscriptions.

Viewing 2 replies - 1 through 2 (of 2 total)
  • The topic ‘Coupons don’t consider cart fees as part of initial payment’ is closed to new replies.