WP-Polls · Version history
WP-Polls changelog and version history
- Latest version
- 3.0.3
- Nov 4, 2026 (5 days ago)
- Releases
- 54
- since 2007
- In the last year
- 4
- about one every 29 days
- Tested up to
- WordPress 7.1.4
- PHP 8.2 or later
Releases each year
- 200715 releases
- 20082 releases
- 20091 release
- 20101 release
- 20145 releases
- 20154 releases
- 20163 releases
- 20176 releases
- 20182 releases
- 20193 releases
- 20202 releases
- 20223 releases
- 20232 releases
- 20251 release
- 20264 releases
20264 releases
WP-Polls 3.0.3Latest
- FIXED: A page that refreshes its polls from theme or plugin code could show the same poll twice. Since 3.0.0 the “Loading …” placeholder beside each poll carried the wp-polls class as well as wp-polls-loading, so code that walks .wp-polls to find the polls on a page found every one twice, and the i…
- NOTE: Custom CSS that addresses the spinner as .wp-polls .wp-polls-spinner no longer matches; .wp-polls-loading .wp-polls-spinner does.
WP-Polls 3.0.2
- NEW: A wp_polls_needs_assets filter, for code that renders a poll where WP-Polls cannot see it coming. 3.0.1 loads the stylesheet and the voting script only where it finds the poll widget, a [poll] or [page_polls] shortcode, one of the two blocks, or a poll rendering during the page itself. Poll ma…
WP-Polls 3.0.1
- CHANGED: The stylesheet, the voting script and the inline poll bar styles load only on pages that show a poll, a polls archive or the poll widget; every other page sheds all three. If a caching or optimisation plugin combines assets per page, its combined file now differs between pages with and wit…
- NEW: A Settings link on the plugin’s row on the Plugins screen.
- CHANGED: Upgrade routines run on init rather than admin_init, so a site updated in the background — by automatic updates or WP-CLI — is migrated on its next request of any kind instead of waiting for somebody to open wp-admin.
- CHANGED: Only one request at a time runs the outstanding upgrade. Running it on init means running it on front-end requests, so two visitors arriving together could both start the option migration and do the same work twice over; now the second waits for the first and finds nothing left to do.
WP-Polls 3.0.0
- FIXED: The limit on how many answers a vote may select was enforced in the browser and nowhere else, so one crafted request could vote for every answer of a single-choice poll — each answer gaining a vote and the poll’s total gaining several, while the voter count went up by one. That leaves the pe…
- NEW: A wp polls WP-CLI command — list, get, open, close and delete.
- NEW: A polls/v1 REST API for reading a poll, reading its result and voting. The admin-ajax.php polls action is unchanged and still supported.
- NEW: Two editor blocks, Poll and Polls Archive, both under Widgets. They render on the server through the same code the shortcodes use, so a block and a shortcode showing the same poll produce the same markup. The [poll], [poll=2] and [page_polls] shortcodes are unchanged and still supported — noth…
- BREAKING: Requires WordPress 6.8 and PHP 8.2.
- BREAKING: The scripts no longer define any global JavaScript functions. poll_vote(), poll_result(), poll_booth() and the admin equivalents are now private, so custom templates or themes that called them directly must move to data-poll-id / data-poll-action attributes. WP-Polls converts the stock te…
- CHANGED: Options, templates, settings, the widget and the install/upgrade routine moved into classes under includes/. The documented extension points are unchanged: every wp_polls_* filter and action, both the [poll] and [page_polls] shortcodes, and the template tags keep their exact names and sign…
- CHANGED: The thirty-odd separate wp_options rows are now a single wp_polls_options row holding a nested array. Your settings are migrated automatically on upgrade; the old rows are removed once they have been folded in.
- FIXED: XSS in the Poll Templates screen. Inline onclick handlers are replaced by data-poll-action / data-poll-id attributes and onclick is no longer an allowed attribute in poll templates.
- FIXED: On multisite, uninstall called restore_current_blog() once after the loop rather than once per site. switch_to_blog() pushes onto a stack, so the stack was left unwound by every site but the first.
- FIXED: On uninstall the three poll tables were dropped from inside the loop over option rows, so the drop ran 36 times per site and issued three DROP TABLE statements each instead of three in total.
- CHANGED: Uninstall asks get_sites() for IDs only rather than hydrating a WP_Site object per site, and the table-dropping work now lives on WP_Polls_Install::uninstall_site() instead of occupying the unprefixed global name plugin_uninstalled().
- FIXED: Network activating on multisite was a fatal error. The activation routine called wp_get_sites(), which WordPress removed in 5.1.
- FIXED: On multisite the three poll tables were not registered with $wpdb, so any query made inside switch_to_blog() read and wrote the wrong site’s polls.
- FIXED: Adding or removing a poll answer in wp-admin no longer breaks. It called jQuery’s .size(), which was removed in jQuery 3.
- FIXED: The poll bar tooltip showed a literal & for any answer containing an ampersand. The polls archive had its own copy of the same bug in %POLL_ANSWER_TEXT%, which is fixed too.
- FIXED: Poll Logs had the same double encoding: an answer containing an ampersand showed a literal & in both the answer filter and the log table.
- FIXED: Voters identified by the comment author cookie were logged with a backslash before any apostrophe, so a commenter named O'Brien appeared in Poll Logs as O\'Brien.
- FIXED: $_SERVER['REMOTE_ADDR'] is no longer read unguarded, which warned under WP-CLI and cron on PHP 8.
- FIXED: The result and vote links no longer follow their placeholder href when clicked.
- FIXED: Removed the duplicated shortcode registration.
- FIXED: Undefined array key warnings on missing stats_display options.
- FIXED: Warnings when rendering a poll whose ID no longer exists.
- FIXED: The voting endpoint read $_REQUEST['view'] without checking it was set, which warned on PHP 8 for any request that left it out.
- FIXED: Activation looked for wp-admin/upgrade-functions.php, which WordPress removed in 2.x, and stopped with an error message if it found neither that nor the current file.
- FIXED: Poll Options could offer a poll bar style that saving then rejected, reverting it while still reporting “Settings saved.” The screen and the sanitiser now build the list of available styles the same way.
- FIXED: Every stylesheet, script and image URL was built from a hardcoded wp-polls/ path, so renaming the plugin directory left WP-Polls loading none of its own assets. All paths now come from the plugin file itself.
- CHANGED: The Settings and Templates tabs now use the WordPress Settings API instead of hand-rolled form handling. Every row on both tabs is registered with add_settings_section() and add_settings_field() and rendered by do_settings_sections(), so the screens look and behave like the rest of wp-admi…
- CHANGED: Poll Bar Background and Poll Bar Border are colour pickers now – the browser’s own colour input, the same control WP-Postratings uses – rather than six character text fields with a # printed beside them and a swatch kept in step by JavaScript. The bar preview follows the colour as it is pi…
- CHANGED: Manage Polls is now a WP_List_Table, so it paginates at 20 polls a page, sorts on ID, Total Voters and Start Date, and puts Edit, Logs and Delete in hover row actions instead of three columns of links. The poll the site is currently showing is still highlighted.
20251 release
WP-Polls 2.77.3
20232 releases
WP-Polls 2.77.2
WP-Polls 2.77.1
20223 releases
WP-Polls 2.77.0
WP-Polls 2.76.0
WP-Polls 2.75.6
20202 releases
WP-Polls 2.75.5
WP-Polls 2.75.4
20193 releases
WP-Polls 2.75.3
WP-Polls 2.75.2
WP-Polls 2.75.1
20182 releases
WP-Polls 2.74.1
WP-Polls 2.74
20176 releases
WP-Polls 2.73.8
WP-Polls 2.73.7
WP-Polls 2.73.6
WP-Polls 2.73.5
WP-Polls 2.73.4
WP-Polls 2.73.3
20163 releases
WP-Polls 2.73.2
WP-Polls 2.73.1
WP-Polls 2.73
20154 releases
WP-Polls 2.72
WP-Polls 2.71
WP-Polls 2.70
WP-Polls 2.69
20145 releases
WP-Polls 2.68
WP-Polls 2.67
WP-Polls 2.66
WP-Polls 2.65
WP-Polls 2.64
20101 release
WP-Polls 2.50
20091 release
WP-Polls 2.40
20082 releases
WP-Polls 2.31
WP-Polls 2.30
200715 releases
WP-Polls 2.21
WP-Polls 2.20
WP-Polls 2.14
WP-Polls 2.13
WP-Polls 2.12
WP-Polls 2.11
WP-Polls 2.10
WP-Polls 2.06
WP-Polls 2.06b
WP-Polls 2.06a
WP-Polls 2.05
WP-Polls 2.04
WP-Polls 2.03
WP-Polls 2.02a
WP-Polls 1.00
Questions about WP-Polls’s releases
What is the latest version of WP-Polls?
3.0.3, released on Nov 4, 2026 (5 days ago). It’s tested up to WordPress 7.1.4 and needs PHP 8.2 or later.
How often is WP-Polls updated?
4 releases in the last year, about one every 29 days. Its first release on WordPress.org dates from March 2007.
Know when your rivals ship
Track your plugin and its rivals: TrackWP sees each new release in the nightly snapshot and alerts you, with what it did to their rank.
Start freeRelease dates come from the day each version’s folder was made in WP-Polls’s WordPress.org SVN repository; the notes from its readme’s changelog, as its authors wrote it.