• Resolved fwlw

    (@fwlw)


    Hi,
    we run Payment Plugins for PayPal WooCommerce and want to report what looks like a capture regression in 2.0.20.
    Timeline (CEST, live mode):
    • Jul 4, ~10:16 — last successful PayPal order on 2.0.19 (captured normally, transaction ID recorded)
    • Jul 4, evening — updated to 2.0.20
    • Jul 5, 00:01 / 10:19 / 12:06 — every PayPal attempt failed identically: order created as Pending payment, customer went through the PayPal popup (one retried and triggered two order-confirmation emails), but no capture ever registered — no transaction ID, no status change — until the unpaid-order timeout cancelled the orders. Stripe (your Stripe plugin) worked normally throughout.
    • Jul 5, ~16:20 — rolled back to 2.0.19. The very next PayPal order captured immediately.
    So: 4 consecutive failures on 2.0.20, instant recovery on 2.0.19.
    Environment: WordPress 7.0 · WooCommerce 10.9.3 (HPOS on) · PHP 8.2.31 · live mode, Smart Buttons on classic (shortcode) checkout · German store, EUR · behind Cloudflare · SiteGround.
    Settings: server_side_shipping_callback = no (the new 2.0.20 shipping-callback feature was not active). reCAPTCHA integration not enabled.
    Suspicion 1: the changelog’s “deprecated ApplicationContext replaced with the new ExperienceContext object in the checkout flow” — the only unconditional change in the create/approve/capture path, and the symptom fits a create-order/return-flow payload issue. Possibly specific to German buyer accounts/funding sources.
    Suspicion 2: we’re behind Cloudflare, which blocks some non-browser requests. Your 2.0.20 notes say the new callback endpoint (/wp-json/wc-ppcp/v1/cart/order-update-callback) should be whitelisted behind security layers. Our callback setting is “no” — but does 2.0.20 make any other server-to-server or REST callback calls in the standard Smart Buttons flow even with that setting disabled? If so, Cloudflare interference would explain why the regression hit our store while 2.0.19 works perfectly.
    Caveat: WooCommerce logging was unfortunately disabled during the affected window, so we don’t have your plugin’s API logs from the failures. Logging is re-enabled; we can reproduce on request (small live test order on 2.0.20 with debug logging on) and send you the log.
    One affected buyer may have completed payment on the PayPal side while the Woo orders auto-cancelled — we’re reconciling via the PayPal dashboard.
    Happy to provide order IDs, timestamps, or a debug-log repro. We’ll stay on 2.0.19 until a fix is confirmed. The plugin has otherwise been rock-solid for us — which is why this stood out.

Viewing 10 replies - 1 through 10 (of 10 total)
  • Plugin Author Clayton R

    (@mrclayton)

    Hi @fwlw

    Thank you for contacting Payment Plugins.

    but does 2.0.20 make any other server-to-server or REST callback calls in the standard Smart Buttons flow even with that setting disabled?

    No, when it’s disabled it’s completely disabled. Per the changelog notes it’s not enabled for existing stores which is why you saw it as disabled in the PayPal Settings.

    WooCommerce logging was unfortunately disabled during the affected window, so we don’t have your plugin’s API logs from the failures. Logging is re-enabled; we can reproduce on request (small live test order on 2.0.20 with debug logging on) and send you the log.

    Yes, that would be very helpful because it would show any API request failures from PayPal’s side.

    The ExperienceContext object mimics the ApplicationContext so that shouldn’t be the cause of any issues. Once you enable logging and perform a test payment, you can find the log on the WooCommerce > Status > Logs page with name wc-ppcp.

    Kind Regards,

    Thread Starter fwlw

    (@fwlw)

    there are no logs created. What happens is you get redirected to PayPal where you login etc then press pay in PayPal and the button never stops spinning and you never advance to next stage. No redirect. I guess to woocommerce it just looks as if the user never finished the payment process. This was done live. No sandbox test.

    Thread Starter fwlw

    (@fwlw)

    Plugin Author Clayton R

    (@mrclayton)

    Hi @fwlw

    Thanks for sharing the screenshot. Can you provide answers to the following questions:

    1. On the PayPal Settings page, do you have Use place order button enabled? https://paymentplugins.com/documentation/paypal/paypal-settings/#use-place-order-button
    2. When you say “What happens is you get redirected to PayPal where you login etc” is the customer clicking the PayPal smartbutton or the “Place Order” button?
    3. On the Advanced Settings page, Is the “PayPal Vault” option enabled? https://paymentplugins.com/documentation/paypal/advanced-settings/#paypal-vault-enabled
    4. Are you using the checkout shortcode or the checkout block?
    5. On the PayPal Settings page, Is Transaction Type set to Authorize or Capture?

    2.0.20 was tested thoroughly and I’ve had more testing performed and so far what you’re describing can’t be replicated.

    Kind Regards

    Plugin Author Clayton R

    (@mrclayton)

    Hi @fwlw

    Quick update on the testing being performed. With the PayPal Vault disabled, and Use place order button enabled we were able to replicate. We’re now determining why that would be since the redirect from PayPal’s hosted payment page is controlled by PayPal code not the plugin.

    Can you enable PayPal Vault and perform a test to confirm if the issue resolves?

    Kind Regards

    Plugin Author Clayton R

    (@mrclayton)

    Hi @fwlw

    Version 2.0.21 has been released which resolves this issue. https://paymentplugins.com/documentation/paypal/releases/2.0.21/

    I do recommend that you leave the Vault Enabled option on as that’s the recommended setting.

    Kind Regards

    Where can i download 2.0.21. Latest version for me is only 2.0.20

    Plugin Author Clayton R

    (@mrclayton)

    Hi @niburu

    You can access the download via the plugin’s main page. There is a Download button in the upper right hand corner.

    https://downloads.wordpress.org/plugin/pymntpl-paypal-woocommerce.2.0.21.zip

    WordPress applies a 24 hour hold on new releases so that’s why you don’t see the automatic update yet. https://wordpress.org/news/2026/06/pts/

    Kind Regards

    Thread Starter fwlw

    (@fwlw)

    with vault on and new update it works

    Plugin Author Clayton R

    (@mrclayton)

    Hi @fwlw

    It works now with vault off as well but I recommend you leave vault on as that’s the recommended setting.

    Thank you

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

You must be logged in to reply to this topic.