Releases: bluedognz/bd-subscription-mailer
Release list
v1.11.0 — Blue Dog Software promo footer
Adds an optional "Sent via Subscription Mailer, by Blue Dog Software" footer to every email this plugin sends — on by default, with a toggle in Settings → Email branding to turn it off per site.
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.
v1.9.0
- New Cards tab: every active subscription and the card it will be charged against, using the same lookup as the daily job so it doubles as a diagnostic. Shows brand/last4, expiry, days remaining, colour-coded status and which warning tiers were already sent, sorted soonest-first.
- Summary counts for expired / expiring within 45 days / no card data.
- Run expiry check now button to trigger the daily job on demand (sends real emails to anyone due; duplicates still blocked).
v1.8.0
Bug fix: Card Expiry warnings never sent.
The plugin looked for stripe_card_expiry* order meta, which the WooCommerce Stripe gateway does not write — so every subscription was silently skipped. Verified on a live site: that meta returned zero rows while the payment tokens table held valid card expiry data.
- Card expiry is now read from WC_Payment_Tokens (the subscription own token where identifiable, else the customer default card, else most recent), ignoring non-card tokens.
- Original order-meta lookups kept as a fallback.
After updating, run: wp action-scheduler run --hooks=bdsm_daily_card_expiry_check
v1.7.1
v1.7.0
- New subscription watchdog: a 30-minute WP-Cron job that auto-activates on-hold subscriptions whose renewal was actually paid (recovers from Stripe webhook races / stale-cache lock-ups), emails a diagnostic report to the admin and logs to WooCommerce -> Status -> Logs (source bd-subscription-watchdog).
- Self-contained module, no new tables or settings; existing email features unchanged.
v1.6.0
- Customisable From name and From email in Settings, applied to every email the plugin sends (including test emails). Leave empty for the site default.
- Note: WP Mail SMTP "Force From" settings override these; use a Postmark-authenticated domain for deliverability.
v1.5.0
- Collapsible email panels on the Task Reminder, Failed Payment and Card Expiry tabs (click the header or arrow), plus Expand all / Collapse all links. Failed Payment headers show the delay when collapsed.
- Plugin icon now appears on the Dashboard → Updates and Plugins screens.
v1.4.0
- New Export / Import tab: copy Failed Payment + Card Expiry emails (and optionally support link + CC addresses) between sites via a Base64 string
- Selective import with per-section checkboxes; leave Settings unticked to keep each site own CC addresses
- Task Reminder content (product-keyed) and the enable/feature toggles are never exported or imported