v1.10.0
Accuracy fix for card expiry — WooCommerce stores a snapshot from when the card was saved, but Stripe silently updates reissued cards via the account updater, so local dates drift out of date.
- Live Stripe lookup: real expiry is fetched from the Stripe API using the WooCommerce Stripe secret key and cached on the subscription. The daily job refreshes before evaluating; the Cards tab has a manual Refresh card data from Stripe button (read-only, no emails). Priority is now Stripe > saved token > order meta, and each Cards row shows which source it used.
- Stale detection: if a payment succeeded after a card supposedly expired, the stored date is provably wrong. Those rows show as "Stale — card replaced" and are never emailed.
- Warning shown if no Stripe secret key is configured.