{"id":390743,"date":"2026-10-25T20:34:17","date_gmt":"2026-10-25T20:34:17","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/skyservers-order-raffle\/"},"modified":"2026-10-25T20:38:03","modified_gmt":"2026-10-25T20:38:03","slug":"skyservers-order-raffle","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/skyservers-order-raffle\/","author":23463204,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.0.0","stable_tag":"1.0.0","tested":"7.1.4","requires":"6.0","requires_php":"7.4","requires_plugins":null,"header_name":"SkyServers Order Raffle","header_author":"Sky Servers SRL","header_description":"Order-based raffles for WooCommerce: frozen participant list, animated draw, public winners page with masked names, manual winner emails.","assets_banners_color":"4a4c50","last_updated":"2026-10-25 20:38:03","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/www.sky-servers.com\/skyservers-order-raffle\/","header_author_uri":"https:\/\/www.sky-servers.com\/","rating":0,"author_block_rating":0,"active_installs":0,"downloads":69,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.0":{"tag":"1.0.0","author":"skyservers","date":"2026-10-25 20:38:03","revision":3765206}},"upgrade_notice":{"1.0.0":"<p>First public release.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3765198,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3765198,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256},"icon.svg":{"filename":"icon.svg","revision":3765198,"resolution":false,"location":"assets","locale":false}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3765198,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3765198,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.0"],"block_files":[],"assets_screenshots":[],"screenshots":[]},"plugin_section":[],"plugin_tags":[7232,7230,16281,52252,21257],"plugin_category":[],"plugin_contributors":[260361],"plugin_business_model":[],"class_list":["post-390743","plugin","type-plugin","status-publish","hentry","plugin_tags-contest","plugin_tags-giveaway","plugin_tags-orders","plugin_tags-raffle","plugin_tags-winners","plugin_contributors-skyservers","plugin_committers-skyservers"],"banners":{"banner":"https:\/\/ps.w.org\/skyservers-order-raffle\/assets\/banner-772x250.png?rev=3765198","banner_2x":"https:\/\/ps.w.org\/skyservers-order-raffle\/assets\/banner-1544x500.png?rev=3765198","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":"https:\/\/ps.w.org\/skyservers-order-raffle\/assets\/icon.svg?rev=3765198","icon":"https:\/\/ps.w.org\/skyservers-order-raffle\/assets\/icon.svg?rev=3765198","icon_2x":false,"generated":false},"screenshots":[],"raw_content":"<!--section=description-->\n<p>SkyServers Order Raffle lets a WooCommerce shop run a prize raffle among the customers who ordered during a given period. Every eligible order is one entry. When registrations close, the list is frozen, the prizes are drawn on a clean full-screen page that you can film live, and the winners are published on any page with a shortcode.<\/p>\n\n<p><strong>How it works<\/strong><\/p>\n\n<ol>\n<li>Create a raffle: set the period, the minimum order total, the eligible order statuses and the prizes, one per place, each with a name and an image from the media library.<\/li>\n<li>Use \u201cRefresh participants\u201d at any time to preview the eligible orders and the number of unique customers.<\/li>\n<li>When the period is over, use \u201cClose registrations\u201d. The list is frozen in the plugin's own table, the settings are locked and the draw page is unlocked. If the period has not ended yet, you get a warning first.<\/li>\n<li>Open the draw page and draw the prizes. Publish the results with the shortcode.<\/li>\n<li>Email the winners from the raffle screen.<\/li>\n<\/ol>\n\n<p><strong>What it does<\/strong><\/p>\n\n<ul>\n<li>One eligible WooCommerce order placed in the period is one entry. The participant is the billing email, guests included.<\/li>\n<li>Refunded, cancelled and failed orders are always excluded. You choose which other statuses count, and set a minimum order total (0 means any).<\/li>\n<li>One customer can win only one prize: after a win, all of that customer's entries leave the urn.<\/li>\n<li>Close registrations to freeze the list. You can reopen registrations until the first prize is drawn.<\/li>\n<li>Draw page for administrators only (capability <code>manage_woocommerce<\/code>): prizes are drawn from the last place up to the first. The winner is chosen on the server with <code>random_int()<\/code> and saved before the animation starts, so a refresh resumes exactly where it stopped. The page is sent uncached.<\/li>\n<li>Public results with the <code>[skyor_results id=\"X\"]<\/code> shortcode: a podium card per prize with the winner's masked name (for example \u201cJane D.\u201d) and the order number, an \u201cin progress\u201d text before the draw, partial results while the draw runs, the rules link and the draw date.<\/li>\n<li>Winner emails are sent manually, per winner or with \u201cNotify all\u201d for the winners not yet notified. Preview an email in a new tab, or use \u201cSend a test email to me\u201d. Emails and public texts use the site language.<\/li>\n<li>Claim instructions for the winner email are written once per raffle.<\/li>\n<li>CSV export of the frozen participant list and of the winners (UTF-8 with BOM, cells protected against spreadsheet formulas).<\/li>\n<li>Activity log per raffle: close, reopen, each draw, each notification, each export and duplication, with the user and the time.<\/li>\n<li>Duplicate a raffle from the list as a clean draft.<\/li>\n<li>Settings for all raffles on the raffle screen: excluded emails (for example a staff member who places phone orders) and a LiteSpeed Cache purge toggle.<\/li>\n<li>A Romanian translation is provided and is delivered as a language pack through translate.wordpress.org once the plugin is published; other languages can be added there.<\/li>\n<\/ul>\n\n<p><strong>Works with<\/strong><\/p>\n\n<ul>\n<li>HPOS (high-performance order storage): orders are read through <code>wc_get_orders()<\/code>.<\/li>\n<li>LiteSpeed Cache: the toggle is shown only when the plugin is active. The cache is purged when a draw completes or when registrations are reopened.<\/li>\n<li>Any theme: the results are a shortcode you can place on any page.<\/li>\n<\/ul>\n\n<p><strong>Privacy<\/strong><\/p>\n\n<p>The frozen list stores the billing name, email, order number and order total of each participant, for that raffle only. The public page shows only masked names and order numbers. The plugin makes no external requests and has no tracking.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the plugin folder to <code>\/wp-content\/plugins\/<\/code> or install it from Plugins \u2192 Add New.<\/li>\n<li>Activate it. WooCommerce must be active.<\/li>\n<li>Go to WooCommerce \u2192 Raffles and add a new raffle.<\/li>\n<li>Set the period, the minimum total, the order statuses, the rules link, the public texts and the prizes. Save, then use \u201cRefresh participants\u201d to preview who takes part.<\/li>\n<li>When registrations are over, use \u201cClose registrations\u201d, then open the draw page from the raffle screen.<\/li>\n<li>Add <code>[skyor_results id=\"X\"]<\/code> to a page, with X the raffle ID shown on the raffle screen.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"can%20a%20customer%20win%20more%20than%20one%20prize%3F\"><h3>Can a customer win more than one prize?<\/h3><\/dt>\n<dd><p>No. A customer is identified by the billing email. After a win, all of that customer's entries leave the urn, however many orders were placed.<\/p><\/dd>\n<dt id=\"where%20do%20the%20winners%20appear%3F\"><h3>Where do the winners appear?<\/h3><\/dt>\n<dd><p>Wherever you place the <code>[skyor_results id=\"X\"]<\/code> shortcode. It shows a podium card per prize with the winner's masked name and the order number. Before the draw it shows an \u201cin progress\u201d text, and during the draw it shows the prizes drawn so far.<\/p><\/dd>\n<dt id=\"what%20happens%20when%20i%20delete%20the%20plugin%3F\"><h3>What happens when I delete the plugin?<\/h3><\/dt>\n<dd><p>Deactivating keeps all data. Deleting the plugin from the Plugins screen removes its tables (entries, winners and activity log), the raffles and the plugin options.<\/p><\/dd>\n<dt id=\"does%20it%20work%20with%20other%20cache%20plugins%3F\"><h3>Does it work with other cache plugins?<\/h3><\/dt>\n<dd><p>Partly. The draw page is sent with no-cache headers, and the results shortcode is plain page content. Automatic purge is built in for LiteSpeed Cache only. With another cache plugin, purge the page that holds the shortcode after the draw.<\/p><\/dd>\n<dt id=\"are%20customer%20names%20shown%20publicly%3F\"><h3>Are customer names shown publicly?<\/h3><\/dt>\n<dd><p>Only masked, for example \u201cJane D.\u201d, together with the order number. Full names, emails and order totals are stored in the frozen list and shown to administrators only.<\/p><\/dd>\n<dt id=\"can%20i%20film%20the%20draw%20live%3F\"><h3>Can I film the draw live?<\/h3><\/dt>\n<dd><p>Yes. The draw page is a clean full-screen page for this purpose. Each winner is chosen and saved on the server before the animation plays, so refreshing the page never changes the result.<\/p><\/dd>\n<dt id=\"can%20i%20change%20a%20raffle%20after%20closing%20registrations%3F\"><h3>Can I change a raffle after closing registrations?<\/h3><\/dt>\n<dd><p>The settings are locked while registrations are closed. You can reopen registrations until the first prize is drawn.<\/p><\/dd>\n<dt id=\"is%20the%20plugin%20translated%3F\"><h3>Is the plugin translated?<\/h3><\/dt>\n<dd><p>A Romanian translation is provided and is delivered as a language pack through translate.wordpress.org once the plugin is published; other languages can be added there.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>First public release.<\/li>\n<li>Raffles defined by period, minimum order total, eligible order statuses, rules link, public texts and prizes with images.<\/li>\n<li>One entry per eligible order, one prize per customer, with excluded emails.<\/li>\n<li>Refresh participants preview, close and reopen registrations, frozen participant list.<\/li>\n<li>Full-screen draw page for administrators, server-side winner selection with <code>random_int()<\/code>, resumable draw, uncached.<\/li>\n<li>Public results shortcode <code>[skyor_results id=\"X\"]<\/code> with masked names.<\/li>\n<li>Manual winner emails: preview, test email, notify one winner or all pending winners.<\/li>\n<li>CSV export of participants and winners.<\/li>\n<li>Activity log per raffle.<\/li>\n<li>Duplicate a raffle as a clean draft.<\/li>\n<li>LiteSpeed Cache purge when a draw completes or registrations reopen.<\/li>\n<li>HPOS compatible.<\/li>\n<li>Romanian translation provided, delivered as a language pack through translate.wordpress.org.<\/li>\n<\/ul>","raw_excerpt":"Order-based raffles for WooCommerce: frozen participant list, animated draw, public winners page with masked names, manual winner emails.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/390743","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=390743"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/skyservers"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=390743"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=390743"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=390743"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=390743"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=390743"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=390743"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}