A giveaway that recruits its own entrants
We launched Contest Boost in June 2014 with a sales page that promised an army of promoters overnight. That page is long gone, but the mechanic underneath it was sound and it is still the whole point: every entrant gets a personal link, and every friend who enters through it earns them extra entries. Version 2.0 is a fresh build for WordPress 7 and PHP 8 that also absorbs Viral List, our 2013 referral plugin, so there is one download instead of two.
Setting up a contest
Contest is a post type with its own page. Under Contests, Add New you describe the giveaway, add a thumbnail, and in the settings box set the prize, the end date (in your site’s time zone), the number of winners, how many entries a signup is worth, how many bonus entries a referral is worth, whether a name is required, and the thank-you text. Publish, and the entry form appears on the contest page by itself. To put it somewhere else, use the Contest block or [contest_boost id="123"].
What the entrant sees
Name and email, submit, done. The page then shows their personal link (a ?cb_ref= token on the contest URL), their current entry count and share buttons for Facebook, X, WhatsApp and email. Anyone who follows that link has the token kept in a cookie for 30 days; when they enter, the referrer gets the bonus and a referral count. Self-referral is not possible, because the referrer’s email is already in the table. A leaderboard of top referrers, names masked, goes anywhere with [contest_boost_leaderboard id="123"] or the block option.
Keeping bots out
- One entry per email, enforced by a unique key in the entries table
- Honeypot field and nonce on the form
- Ten requests per ten minutes per IP
- Plain HTML form posted back to the page, so no JavaScript is needed on the frontend
Picking winners
Contests, Entries lists everyone per contest with their points, lets you delete an entry and exports the lot as CSV (guarded against spreadsheet formula injection). When the contest is over, one click draws the winners. The draw is weighted: an entrant with 10 entries is ten times as likely as one with 1. Drawing again replaces the previous winners, and the winners appear on the contest page with masked names. All of this needs the edit_others_posts capability and a nonce.
What it does not do
It does not send email. No confirmation, no “you won” message, no newsletter signup. We left that out on purpose, because every site already has a mail tool it prefers. Hook the contest_boost_entered action to push entrants to your list or send your own confirmation. It also does not write your giveaway rules; those differ by country and state, so publish your own terms on the contest page. We tested the entries table on SQLite rather than MySQL, with a standard dbDelta statement, so if your activation throws a table error, tell us.






