• problematichild

    (@problematichild)


    Hi Support Team,

    We are currently investigating an issue where duplicate orders appear to have been created for some Stripe transactions.

    In several cases, duplicate orders were placed only a few minutes apart for the same customer/order details, resulting in duplicate charges that we later had to manually refund.

    Some customers also reported receiving a timeout/loading error while the Stripe payment was processing.

    We have encountered cases where payment was successfully received in Stripe, however the order was later marked as cancelled instead of processing successfully.

    Could you please take a look into this matter and advise?

    Thank you.

Viewing 3 replies - 1 through 3 (of 3 total)
  • Plugin Support shahzeen(woo-hc)

    (@shahzeenfarooq)

    Hi there!

    Thank you for reaching out and sharing these details. We understand your concern regarding the duplicate Stripe orders, duplicate charges, timeout errors during checkout, and orders being marked as cancelled despite successful payments.

    To help us investigate this further, could you please let us know if any changes were made to the site before the issue started appearing?

    Additionally, could you please share screenshots of the affected order notes?

    You can find the order notes by navigating to:

    WooCommerce → Orders → Edit affected order

    On the order details page, in the right sidebar, you should see the Order Notes section.

    Could you also please check whether there are any Stripe-related error logs around the time the affected orders were placed?

    You can check this via:

    WooCommerce → Status → Logs

    Then select any Stripe-related log file from the dropdown and look for entries matching the affected order timestamps.

    Also, I’d like to understand your site properly. Please share with us the necessary information below for us to investigate the issue further:

    • System Status Report which you can find via WooCommerce > Status

    Please use https://pastebin.com/ or https://gist.github.com/ and share a link to that paste in reply here. Once we have more information, we’ll be able to assist you further.

    Thread Starter problematichild

    (@problematichild)

    Hi @shahzeenfarooq

    We’ve already reviewed the relevant Stripe and WooCommerce logs around the affected orders, and we were not able to identify any Stripe-side errors or failed payment events during the time these issues occurred.

    From our investigation so far, we can also confirm that the duplicate WooCommerce orders are linked to separate Payment Intents in Stripe, and both Payment Intents show as successfully completed and charged.

    What we are seeing suggests that in some cases customers may be experiencing a disruption during the checkout flow, which may prevent the checkout from cleanly redirecting to the “order received” page. In those scenarios, the customer may assume the transaction did not go through and attempt to place the order again, resulting in a second successful payment and duplicate order creation.

    Based on this behavior, could you please advise on the possible cause of a checkout flow not completing the final redirect or confirmation step and any recommended fixes to prevent this from occurring?

    https://prnt.sc/hfq_kWbbNSit
    https://prnt.sc/EcbuNk8w8q-x
    https://pastebin.com/Z8DMPuJ0

    Plugin Support LovingBro (woo-hc)

    (@lovingbro)

    Hi @problematichild,

    Thank you for sharing the screenshots and the detailed System Status Report, this gives a much clearer picture of what is happening on the site.

    From the order notes and your findings, it does appear that the duplicate orders are not being generated by Stripe retrying the same Payment Intent. Instead, separate successful Payment Intents are being created, which usually indicates the checkout request itself is being submitted more than once.

    The screenshots also align with what you described earlier, where the customer likely experiences a delay or interruption during checkout, then retries the payment before the first request fully completes.

    A few things stand out from the report that could contribute to this behaviour:

    1. The site is running several heavily checkout related plugins and customizations, including:
      – NitroPack
      – GTM4WP
      – Meta Pixel
      – multiple discount/cart modification plugins
      – custom theme WooCommerce overrides
      – Zapier integrations
      – custom Elementor integrations
    2. There are multiple outdated WooCommerce template overrides, especially checkout related templates:
      checkout/form-checkout.php
      cart/cart.php
      mini-cart.php
      – several email and checkout templates

    Outdated checkout templates can sometimes interfere with newer WooCommerce or Stripe checkout flows, especially around AJAX updates, redirect handling, nonce validation, and payment confirmation callbacks.

    1. NitroPack and aggressive frontend optimization/caching services are also known to occasionally interfere with payment processing requests or delay Stripe JS callbacks if checkout pages are cached or optimized too aggressively.

    At this stage, the most likely causes are:

    – A frontend JavaScript interruption during the final Stripe confirmation step
    – A delayed AJAX response causing customers to retry checkout
    – Checkout page optimization/caching conflicts
    – Custom theme or plugin interference with the updated Stripe checkout flow

    To narrow this down, I would recommend the following:

    1. Ensure the following pages are fully excluded from all caching and optimization layers, including NitroPack, server cache, CDN cache, and Cloudflare if enabled:
      – Cart
      – Checkout
      – My Account
      – Order Pay
      – Order Received
    2. Temporarily disable NitroPack optimizations specifically for checkout related scripts and test again.
    3. Update all outdated WooCommerce template overrides in the theme, especially checkout related templates: https://developer.woocommerce.com/docs/theming/theme-development/template-structure
    4. Perform a conflict test on a staging site:
      – Temporarily switch to Storefront
      – Disable all plugins except:
      – WooCommerce
      – WooCommerce Stripe Gateway
      – Then test several Stripe payments

    This will help confirm whether the issue is coming from the theme/customizations or from a third party plugin conflict.

    1. Since the customer appears to retry payment after delays, it would also help to inspect the browser console for JavaScript errors during checkout: https://developer.wordpress.org/advanced-administration/debug/debug-javascript/

    Additionally, I noticed the site is still using classic order storage with HPOS disabled. While this is not directly causing the issue, HPOS does improve order handling performance and reliability on larger stores: https://woocommerce.com/document/high-performance-order-storage/. Before enabling it, please confirm all active plugins are HPOS compatible.

    Please let us know how the staging conflict test goes and whether excluding checkout from NitroPack optimization changes the behaviour.

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

You must be logged in to reply to this topic.