Title: Democracy Poll
Author: Timur Kamaev
Published: <strong>Февраль 2, 2015</strong>
Last modified: Июнь 25, 2026

---

Search plugins

![](https://ps.w.org/democracy-poll/assets/icon-256x256.png?rev=2832208)

# Democracy Poll

 By [Timur Kamaev](https://profiles.wordpress.org/tkama/)

[Download](https://downloads.wordpress.org/plugin/democracy-poll.zip)

 * [Details](https://os.wordpress.org/plugins/democracy-poll/#description)
 * [Reviews](https://os.wordpress.org/plugins/democracy-poll/#reviews)
 * [Development](https://os.wordpress.org/plugins/democracy-poll/#developers)

 [Support](https://wordpress.org/support/plugin/democracy-poll/)

## Description

This plugin provides an intuitive and powerful system for creating polls, with features
such as:

 * Customizable single-choice and multiple-choice voting
 * Optional custom answers submitted by visitors
 * Poll end dates
 * Optional restriction of voting to registered users
 * Multiple poll designs
 * And more — see the changelog for details

**Democracy Poll** is compatible with major cache plugins, including W3 Total Cache,
WP Super Cache, Wordfence, Quick Cache, and others.

Designed for ease of use and performance, it offers:

 * A Quick Edit” button for admins, shown directly above a poll
 * A plugin menu in the admin toolbar
 * Inline poll CSS
 * Conditional JavaScript loading only when a poll is rendered
 * And more — check the changelog for details

### More Info

Democracy Poll is a modern version of the original, well-regarded plugin by the 
same name. Andrew Sutherland introduced the original plugin in 2006, including the
innovative ability for visitors to add their own answers. This version retains the
name and core idea but has been completely rewritten.

**Key features:**

 * Create new polls
 * Cache plugin compatibility (e.g. W3 Total Cache, WP Super Cache)
 * Allow visitors to add their own answers
 * Multiple-choice voting support
 * Automatic poll closing after a specified end date
 * Display random polls
 * Restrict voting to registered users (optional)
 * Quick poll editing for administrators
 * Edit vote counts
 * Allow users to change their votes
 * Voter tracking via IP address, cookies, or WordPress user ID, with optional vote
   clearing
 * Embed polls in posts via `[democracy]` shortcode (visual editor button available)
 * Widget support (optional)
 * Admin bar menu for easy access (optional)
 * Load front-end assets only when a poll is rendered
 * Add custom notes under polls
 * Customize designs via CSS themes

Multisite support has been available since version 5.2.4.

### Usage

### Widget

 1. Go to `WP Admin  Appearance  Widgets` and add the `Democracy Poll` widget
 2. Place it in a sidebar
 3. Configure settings
 4. Done

### Template Code

In your theme file (e.g. `sidebar.php`), add:

    ```
    <?php if ( function_exists( 'democracy_poll' ) ) { ?>
        <div class="sidebar-section">
            <h2>Polls</h2>
            <div class="my-poll">
                <?php democracy_poll(); ?>
            </div>
        </div>
    <?php } ?>
    ```

 * To show a specific poll: `<?php democracy_poll( 3 ); ?>` (replace `3` with your
   poll ID)
 * To embed a specific poll in a post, use `[democracy id="2"]` shortcode.
 * To embed a random poll in a post, use `[democracy]` shortcode.

#### Poll Archive

To show the poll archive:

    ```
    <?php democracy_archives( $hide_active, $before_title, $after_title ); ?>
    ```

## Screenshots

[⌊Single vote view⌉⌊Single vote view⌉[

Single vote view

[⌊Single result view⌉⌊Single result view⌉[

Single result view

[⌊Multiple vote view⌉⌊Multiple vote view⌉[

Multiple vote view

[⌊Admin polls list⌉⌊Admin polls list⌉[

Admin polls list

[⌊Admin edit poll⌉⌊Admin edit poll⌉[

Admin edit poll

[⌊Add poll admin page⌉⌊Add poll admin page⌉[

Add poll admin page

[⌊General settings⌉⌊General settings⌉[

General settings

[⌊Theme settings⌉⌊Theme settings⌉[

Theme settings

[⌊Text customization⌉⌊Text customization⌉[

Text customization

## FAQ

### Does this plugin clean itself up after uninstalling?

Yes. Deleting the plugin removes all of its options and data.

## Reviews

![](https://secure.gravatar.com/avatar/3041d6ea1921dd56968b44eb29eaa3fc2d4f8ee54d3214311bbc73e40095528b?
s=60&d=retro&r=g)

### 󠀁[Unresolved security issue and confusing UX](https://wordpress.org/support/topic/unresolved-security-issue-and-confusing-ux-2/)󠁿

 [clip1492](https://profiles.wordpress.org/clip1492/) Август 24, 2025

I decided not to use this plugin for two reasons: Unresolved vulnerability – A critical
security issue has been reported since 1 years and the author has not addressed 
it nor responded in the support forum, which is concerning. Poor Frontend UX – The
voting flow is unnecessarily complicated. Results are shown before voting (if “show
results” is enabled), and the voting process takes three clicks: first click a “
Vote” button under the results, then select the option, and click again to confirm
the vote. A smoother flow would be letting users vote directly with a single click
on the option, then rewarding them with the results, or a link to reveal them.Because
of these issues, I switched to another popular free plugin, which has not known 
security issues and a straight user experience.

![](https://secure.gravatar.com/avatar/536a0f234e517816fab73a1f39e609c352f574c3803cff282a01472f321e3585?
s=60&d=retro&r=g)

### 󠀁[Perfect for Civic Organizations](https://wordpress.org/support/topic/perfect-for-civic-organizations/)󠁿

 [](https://profiles.wordpress.org/forresthamm/) Май 19, 2025

Easy to operate – thank you for your efforts!

![](https://secure.gravatar.com/avatar/37e5c131432bdc79d75520d216b286862bfbf7cc6c1bfbde69a984b5de5412bf?
s=60&d=retro&r=g)

### 󠀁[Role problem](https://wordpress.org/support/topic/role-problem-2/)󠁿

 [senseart](https://profiles.wordpress.org/senseart/) Май 11, 2025

I have a problem.When trying to create a poll from the Editor” role, it gives an
error Low capability to add/edit poll”.Even when I check all roles in Settings, 
there is still no permission.This happens in the latest versions of the plugin.For
now, I have reverted to version (5.6.0) so that I can work.Does anyone have a similar
problem?My configuration is:WordPress 6.8.1PHP 8.0

![](https://secure.gravatar.com/avatar/ba2e76aa04b013f091ff4d56cbc4c6a1ded3365cb237c45f478f4f03eb752bd3?
s=60&d=retro&r=g)

### 󠀁[thanks for 6.0.4, please address CVE-2024-33920](https://wordpress.org/support/topic/works-as-expected-187/)󠁿

 [bummtschak](https://profiles.wordpress.org/bummtschak/) Апрель 28, 2025

Thanks for the 6.0.4 update. Sadly it does not mention a fix for CVE-2024-33920 
which has been in 6.0.3 and earlier versions. Hope this can be resolved. https://
cve.org/CVERecord?id=CVE-2024-33920

![](https://secure.gravatar.com/avatar/6c8a9e134f21ed1f29135ccdeafec15f848231a77505923575d59428cd6db225?
s=60&d=retro&r=g)

### 󠀁[Great plugin!](https://wordpress.org/support/topic/great-plugin-40290/)󠁿

 [Harald](https://profiles.wordpress.org/harald-geisler/) Мартъи 17, 2025

I wanted to take a moment to express my sincere appreciation for the work you’ve
done creating and maintaining this plugin. It’s clear that a lot of thought and 
effort went into it, and it shows! As a new user, I’m impressed with its range of
options and functionalities—it’s almost everything I was hoping for. Your dedication
to delivering a quality tool is truly commendable! If you accept suggestions for
additional features, I would love to see Panachage and cumulative voting integrated
into the plugin. These enhancements would take its capabilities to the next level.
Thank you once again for this fantastic plugin. Keep up the outstanding work!

![](https://secure.gravatar.com/avatar/cd4bf5ad28b1eb36e0cc0c73fda49a08bb6e024e8ee5e743eb0dca0c8e6080b1?
s=60&d=retro&r=g)

### 󠀁[Great plugin for making a survey](https://wordpress.org/support/topic/great-plugin-for-making-a-survey/)󠁿

 [pagrob](https://profiles.wordpress.org/pagrob/) Январь 8, 2025

Great plugin for making a survey, simple to use and with many options.

 [ Read all 85 reviews ](https://wordpress.org/support/plugin/democracy-poll/reviews/)

## Contributors & Developers

“Democracy Poll” is open source software. The following people have contributed 
to this plugin.

Contributors

 *   [ Timur Kamaev ](https://profiles.wordpress.org/tkama/)

“Democracy Poll” has been translated into 4 locales. Thank you to [the translators](https://translate.wordpress.org/projects/wp-plugins/democracy-poll/contributors)
for their contributions.

[Translate “Democracy Poll” into your language.](https://translate.wordpress.org/projects/wp-plugins/democracy-poll)

### Interested in development?

[Browse the code](https://plugins.trac.wordpress.org/browser/democracy-poll/), check
out the [SVN repository](https://plugins.svn.wordpress.org/democracy-poll/), or 
subscribe to the [development log](https://plugins.trac.wordpress.org/log/democracy-poll/)
by [RSS](https://plugins.trac.wordpress.org/log/democracy-poll/?limit=100&mode=stop_on_copy&format=rss).

## Changelog

See `COMPAT: ***` messages in the changelog below for any backward compatibility
changes that may require code updates if you use the plugin’s public API or properties
directly in your code.

#### 6.4.0

 * NEW: Added a global setting to sort order for answers on the results screen.
 * FIX: Shortcode `[democracy id=last]` for last poll did not work correctly in 
   some cases. See [request](https://wordpress.org/support/topic/shortcode-to-last-poll-not-working/)
 * FIX: Users with plugin access roles could not create new polls. See [request](https://wordpress.org/support/topic/dempollget_db_data-poll-fails-when-editor-tries-to-add-new-poll-6-1-1/)
 * FIX: There was no way to add custom answer if Hide vote button” option is on,
   and it is non-multiple poll with the revote option enabled.
 * FIX: Small bug when allowing users to add their own answers.
 * CHG: Max poll height options disabled by default.
 * IMP: Refresh poll edit form UI.
 * IMP: Store votes for all polls in one cookie instead of creating a separate cookie
   per poll.
 * COMPAT: `DemPoll::$dbdata` property removed. Use `DemPoll` props instead.
 * COMPAT: `DemPoll` object renamed to `\DemocracyPoll\Poll`. Old DemPoll class 
   name remains available via PHP class alias, but some public properties were removed/
   changed. So you may need to update your code if you use `DemPoll` or it’s properties
   directly.
 * COMPAT: `Poll_Service` class removed as well as `DemPoll::$service` property.
   Use methods of new `Poll_Cookies`, `Poll_Voting_Service`, `Poll_Logs` instead.
 * COMPAT: Custom HTML returned by the `dem_vote_screen` or `dem_result_screen` 
   filters must include the new `dem_*_js` classes used as JavaScript hooks.

#### 6.3.1

 * FIX: Restored the Text Customization settings page after a previous refactor.
 * CHG: Switched the IP information provider to ipwho.is.
 * IMP: IP information in the logs table now loads through Admin AJAX. Requests 
   are queued to respect the provider rate limit, and the page no longer waits for
   missing IP data.
 * IMP: Added a loading indicator and forced IP information refresh button.
 * IMP: Updated translations and translated all code comments into English.

#### 6.3.0

 * Vote cancellation now requires server-side logs; revoting is disabled when logging
   is disabled.
 * Fixed `CVE-2024-33920`, reported by Patchstack/WPScan (Missing Authorization /
   Broken Access Control):
    - Public `delVoted` could subtract votes using a user-controlled cookie.
    - SQL did not restrict answers to the current `qid`.
 * Fixed admin IDOR via tampering with `POST['dmc_qid']`.
 * Added translations for `fr_FR`, `hi_IN`, and `zh_CN`.

#### 6.2.0

 * CHG: Completely removed the jQuery dependency from the front end.
 * IMP: Improved the vote and revote height animations.
 * IMP: Modernized styles and added CSS variables.
 * IMP: The Max height” and Line height” options now support CSS units instead of
   only pixels.
 * CHG: Removed the `show_copyright` and `inline_js_css` options and their related
   logic.
 * CHG: Removed the `disable_js` option and support for using the plugin without
   browser JavaScript. JavaScript is now required for better UX and performance.
 * IMP: Refactored and improved the code, translated comments, and replaced `var`
   with `const` and `let` where appropriate.
 * IMP: Added `package.json` and an ES module-based `gulpfile.js`, extracted several
   functions to `Utils.mjs`, and moved JavaScript and CSS files to `assets`.
 * IMP: Added a Gulp build system and converted JavaScript files to ES6 modules.

#### 6.1.2

 * UPD: Tested up to WP 7.0.

#### 6.1.1

 * FIX: esc_attr() added for inline js to fix possible bugs on some servers.

#### 6.1.0

 * COMPAT: Removed the `DEM_VER` constant; use `DemocracyPoll\plugin()->ver` instead.
 * COMPAT: Removed the `DEMOC_URL` constant; use `DemocracyPoll\plugin()->url` instead.
   Note that the trailing slash was removed.
 * COMPAT: Removed the `DEMOC_PATH` constant; use `DemocracyPoll\plugin()->dir` 
   instead. Note that the trailing slash was removed.
 * COMPAT: Removed the `DEMOC_MAIN_FILE` constant.
 * COMPAT: Significantly refactored `DemPoll` by decomposing it into smaller classes,
   including the new `Poll_Renderer` and `Poll_Service` classes.
 * FIX: PHPStan fixes and improvements.
 * IMP: Updated the POT and PO translation files and added `.l10n.php` files for
   better performance.

#### 6.0.5

 * IMP: Unit tests infrastructure added. Some Helpers methods are now tested.
 * IMP: Added PHP type hints in several parts of the code.
 * NEW: Poll_Answer class added to encapsulate poll answer data and improve code
   readability.
 * DOC: All filters and actions documented.
 * IMP: Other minor improvements.

#### 6.0.4

 * FIX: Init moved to `after_setup_theme` hook.
 * NEW: Added alphabetical answer ordering.
 * IMP: Improved `democracy.js` and refactored part of it to vanilla JavaScript.
 * IMP: Minor CSS refactoring.
 * IMP: Minor improvements.
 * UPD: Tested up to WordPress 6.8.
 * UPD: Updated js-cookie from 2.2.0 to 3.0.5.
 * COMPAT: Requires PHP 7.4+

#### 6.0.3

 * FIX: Poll widget did not work correctly if select random poll” option was set.

#### 6.0.2

 * FIX: Fatal error with WordFence” plugin: Failed opening …/Helpers/wfConfig.php”.

#### 6.0.1

 * FIX: Short-circuit recursion on plugin object construct for not logged-in users(
   v6.0.0 bug).
 * IMP: Minor improvements.

#### 6.0.0

 * COMPAT: Minimal PHP version requirement set to 7.0.
 * COMPAT: Class `Democracy_Poll` renamed to `Plugin` and moved under namespace.
 * COMPAT: Functions `democr()` and `demopt()` renamed to `\DemocracyPoll\plugin()`
   and `\DemocracyPoll\options()`.
 * COMPAT: Most classes moved under `DemocracyPoll` namespace.
 * FIX: Unable to delete all answers or create a democracy poll without a starting
   answer.
 * FIX: `democracy_shortcode` bug.
 * FIX: Not logged-in user logs now get saved with user_id=0 and IP (not just IP).
 * FIX: `Regenerate_democracy_css` fixes. Empty answer PHP notice fix.
 * IMP: `DemPoll` object improvements: magic properties replaced with real ones.
 * IMP: Admin” classes refactored.
 * IMP: Admin Pages code refactored.
 * IMP: Classes autoloader implemented.
 * IMP: Huge refactoring, minor code improvements, and decomposition.
 * UPD: Updated `democracy-poll.pot`.

Older changes are available in [changelog.txt](https://plugins.svn.wordpress.org/democracy-poll/trunk/changelog.txt).

## Meta

 *  Version **6.4.0**
 *  Last updated **4 боны ago**
 *  Active installations **7,000+**
 *  WordPress version ** 5.8 or higher **
 *  Tested up to **7.0**
 *  PHP version ** 7.4 or higher **
 *  Languages
 * [Catalan](https://ca.wordpress.org/plugins/democracy-poll/), [Dutch](https://nl.wordpress.org/plugins/democracy-poll/),
   [English (US)](https://wordpress.org/plugins/democracy-poll/), [Persian](https://fa.wordpress.org/plugins/democracy-poll/),
   and [Russian](https://ru.wordpress.org/plugins/democracy-poll/).
 *  [Translate into your language](https://translate.wordpress.org/projects/wp-plugins/democracy-poll)
 * Tags
 * [democracy](https://os.wordpress.org/plugins/tags/democracy/)[polls](https://os.wordpress.org/plugins/tags/polls/)
   [review](https://os.wordpress.org/plugins/tags/review/)[survey](https://os.wordpress.org/plugins/tags/survey/)
   [vote](https://os.wordpress.org/plugins/tags/vote/)
 *  [Advanced View](https://os.wordpress.org/plugins/democracy-poll/advanced/)

## Ratings

 4.6 out of 5 stars.

 *  [  72 5-star reviews     ](https://wordpress.org/support/plugin/democracy-poll/reviews/?filter=5)
 *  [  5 4-star reviews     ](https://wordpress.org/support/plugin/democracy-poll/reviews/?filter=4)
 *  [  3 3-star reviews     ](https://wordpress.org/support/plugin/democracy-poll/reviews/?filter=3)
 *  [  2 2-star reviews     ](https://wordpress.org/support/plugin/democracy-poll/reviews/?filter=2)
 *  [  4 1-star reviews     ](https://wordpress.org/support/plugin/democracy-poll/reviews/?filter=1)

[Your review](https://wordpress.org/support/plugin/democracy-poll/reviews/#new-post)

[See all reviews](https://wordpress.org/support/plugin/democracy-poll/reviews/)

## Contributors

 *   [ Timur Kamaev ](https://profiles.wordpress.org/tkama/)

## Support

Issues resolved in last two months:

     2 out of 4

 [View support forum](https://wordpress.org/support/plugin/democracy-poll/)