• Resolved SiteBites

    (@sitebites)


    We have experienced a case where a WooCommerce order was successfully processed with a £0 total, despite the cart containing a single product priced at £157.96, with no coupons, discounts, currency conversion, gift cards, or manual price overrides applied.

    Key facts:

    • WooCommerce Version: 10.1.2
    • Checkout Type: Classic (non-block) checkout
    • Customer Type: Guest user (not logged in)
    • Store Currency: GBP
    • No discount plugins were applied or active for that session
    • Other guest checkouts before and after were normal and charged correctly
    • The order status was marked as “Processing”, as though payment was completed, even though no gateway was triggered
    • Order record shows line item price as £157.96, but order total = £0 and no payment record exists
    • Payment gateway logs show no attempt from WooCommerce to initialise payment
    • See Order Notes here and the Line items/Order total here

    We have been unable to replicate/reproduce this bug so far.

    We are looking into implementing full cart and pre-order session logging to trace this, but would appreciate guidance on:

    • Known edge cases where WooCommerce allows non-zero-priced products to complete checkout as £0 without attempting payment
    • Any recommendations from WooCommerce core team for tracking/preventing cart miscalculations that result in zero-total bypass

    This appears to be a rare but critical edge case affecting revenue protection and we want to know what caused this issue (so it does not happen again).

Viewing 16 replies (of 16 total)
  • Plugin Support shahzeen(woo-hc)

    (@shahzeenfarooq)

    Hi there!

    Specifically, we need:

    • A snippet that blocks all unintended £0 orders only when no coupon or gift card has been applied.
    • The correct WooCommerce hooks for WooCommerce v10.1+.
    • Confirmation that this snippet will not interfere with legitimate £0 scenarios (e.g., when using the official WooCommerce Gift Cards plugin which may bring totals to £0).

    We want to ensure we apply the snippet exactly as intended and avoid writing something that unintentionally blocks valid gift-card redemptions or future functionality.

    I can understand your concern, please note that generally we do not provide support customization. If you need more in-depth support or want to consider professional assistance for customization, I can recommend WooExperts and Codeable.io as options for getting professional help. Alternatively, you can also ask your development questions in the  WooCommerce Community Slack as custom code falls outside our usual scope of support.

    • Does WooCommerce skip all field validation automatically when the cart total is 0 at the process_checkout() stage?
    • Is this behaviour expected, or is it something WooCommerce may consider tightening in future versions?

    By default, WooCommerce does not ask for a payment method if the cart total is zero. However, it still requires the user to enter billing details such as first name, last name, country, and address.

    This ensures that even free orders have the necessary information for processing, shipping, and record-keeping.

    Is there a hook we can log that fires before WooCommerce decides the checkout is free?
    We already have cart-session logging in place, but if you can suggest an earlier or more specific action, we will implement it.

    Once we have the validated snippet and your clarification, we’ll move ahead with the fixes on staging before deploying the changes live.

    Thanks again for your ongoing help — we appreciate it.

    For such questions, I would suggest you ask your development questions in the  WooCommerce Community Slack as custom code falls outside our usual scope of support.

Viewing 16 replies (of 16 total)

You must be logged in to reply to this topic.