Changelog
What's changed in each version
Version 1.0.5 Current
- Fixed: the "already sent" fallback record for winner emails is now kept separately for each draw and only written or deleted under that draw's own lock, so draws sending or recovering at the same time can no longer overwrite or delete each other's records and cause a repeat email
- Improved: records kept by 1.0.3 and 1.0.4 in one shared option are still honoured, and are moved into the per-draw records automatically after updating
Version 1.0.4
- Fixed: automatic winner email retries now work through every draw with emails pending, 20 at a time, from a saved position. Draws that keep failing can no longer stop newer draws from being emailed: the next batch runs a minute later, and the whole list is tried again every five minutes until nothing is left
- Fixed: the Live Draw admin list now shows "winner emails not sent yet" and the "Send pending winner emails" button for draws that need them (the list was not loading each draw's email status)
- Improved: the draw screen loads its stylesheet and script through WordPress, admin output is escaped throughout, and a readme.txt is included. Plugin Check reports no errors or warnings
Version 1.0.3
- Fixed: the winner email retry and the YetiRaffles history retry are scheduled before the draw result is saved, so if PHP stops at any point after the draw, both are still picked up
- New: an hourly safety net (yld_safety_net), registered at activation and re-registered on every page load if missing, sends any pending winner emails and syncs any missing history even if a request stopped before scheduling anything
- Fixed: every save of winner email status is checked by reading it back. If it cannot be saved before an email, the email is not sent and is retried later
- Fixed: if an email is sent but its status cannot be saved (after 3 tries), it is recorded separately so it is never sent again, sending stops, and the rest are retried automatically
- New: yld_draw_committed and yld_notification_state_failed actions
Version 1.0.2
- Fixed: the automatic YetiRaffles history retry now works through every pending draw, 50 at a time, until all are synced - not just the first 50
- Fixed: winner emails are tracked per winner and saved with the draw result, so if the request is interrupted after the draw, the remaining emails are sent automatically - winners are never recalculated and a winner already emailed is not emailed again
- New: emails that fail are retried automatically (up to 3 attempts), then shown on the draw with a "Send pending winner emails" button
- New: yld_retry_notifications scheduled event
Version 1.0.1
- Fixed: draws prepared by earlier versions (without locked entries and ticket owners) can no longer run - they are marked "Cannot run" and can only be cancelled, so a new draw is prepared with a proper snapshot
- Fixed: the public results page shows those draws as "Will not run" instead of "Upcoming draw"
- Fixed: adding winners to the YetiRaffles draw history is now checked - if it fails, the draw is flagged, retried automatically every 5 minutes and can be retried with "Sync to YetiRaffles"
- New: retrying the history sync uses the saved winners only - it never picks new winners or sends winner emails again, and never adds a draw twice
- New: yld_history_synced and yld_history_sync_failed actions for developers
Version 1.0.0
Initial release.
- Commit-reveal draws using drand public randomness as the live seed, fixed when the draw is prepared
- Entries locked and fingerprinted when the draw is prepared - draws refuse to run if tickets change
- Ticket owners locked when the draw is prepared - winners are recorded and emailed from that snapshot
- Optional typed-in live seed, clearly labelled as organiser-supplied
- Browser verifier also checks the live seed directly with drand
- Full-screen animated draw screen with pop-out window, full-screen button, F key shortcut and auto-hiding cursor
- Back-to-back draw sessions across several competitions
- Up to 50 winners per draw, revealed one at a time
- Public results shortcode with in-browser verification and entry list download
- Privacy-safe winner names (first name and last initial)
- Optional winner emails
- Winners added to YetiRaffles draw history, Recent Winners and winners gallery
- Draws can only be run once, even with simultaneous clicks
- Tested with WordPress 7.1 and WooCommerce 11.2, HPOS compatible
- GPL-2.0-or-later licence and .pot translation template
Need Help?
If you have questions or need assistance, check out our Troubleshooting Guide or FAQ.