close
Skip to content

Prevent Stripe non-card payments from timing out prematurely#1652

Open
dd32 wants to merge 2 commits intoWordPress:productionfrom
dd32:fix/claude/1532-stripe-payment-timeout
Open

Prevent Stripe non-card payments from timing out prematurely#1652
dd32 wants to merge 2 commits intoWordPress:productionfrom
dd32:fix/claude/1532-stripe-payment-timeout

Conversation

@dd32
Copy link
Member

@dd32 dd32 commented Mar 12, 2026

Summary

  • Delayed payment methods (boleto, OXXO, etc.) complete the Stripe checkout session but payment settlement takes days. Previously the 24-hour CampTix timeout would expire these attendees before payment could complete, causing attendees to lose their tickets.
  • When returning from Stripe with an unpaid delayed payment session, attendees are now marked as pending instead of completed, so tickets are not issued until payment actually settles.
  • The timeout review now checks both draft and pending attendees. For pending Stripe payments, the timeout is delayed by resetting the attendee timestamp (up to a 7-day maximum safety limit).
  • Open Stripe sessions that have not expired according to Stripe are also given extra time before timing out.

Fixes #1532

Test plan

  • Purchase a ticket using a delayed payment method (e.g., boleto in test mode)
  • Verify the attendee is marked as pending (not published) after returning from Stripe
  • Wait for the daily timeout cron to run and verify the attendee is NOT timed out while payment is still pending
  • Complete the payment and verify the attendee is correctly marked as published on the next timeout review cycle
  • Verify that after 7 days of pending status, the attendee is allowed to time out
  • Verify standard card payments still work as before (immediate completion)

Generated with Claude Code

dd32 and others added 2 commits March 13, 2026 09:19
Delayed payment methods (boleto, OXXO, etc.) can take days to settle.
Previously, the 24-hour timeout would mark these attendees as timed out
before payment could complete.

Changes:
- Mark attendees as pending (not completed) when returning from Stripe
  with an unpaid delayed payment session
- Delay timeout for attendees with pending Stripe payments by resetting
  their timestamp, with a 7-day maximum safety limit
- Include pending attendees in the timeout review process
- Delay timeout for open Stripe sessions that have not yet expired

Fixes WordPress#1532

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Stripe: non-card payments may timeout before payment completion.

1 participant