WordPress Poll Plugin is a lightweight, customizable solution for creating and managing polls within your WordPress site. It features real-time results, IP-based voting protection, and flexible settings to control how your users interact with your surveys.
- Custom Post Type: Polls are stored as native WordPress posts (
poll), making them easy to manage, publish, and categorize. - Real-time Results: AJAX-powered voting updates results instantly without reloading the page.
- Security & Rate Limiting:
- IP address tracking to prevent duplicate voting.
- Proxy detection (
X-Real-IP,X-Forwarded-For). - CSRF protection via Nonces.
- Flexible Settings:
- Allow multiple votes per user/IP.
- Option to hide results until the user has voted.
- Anonymous voting support.
- Configurable vote limits per IP.
- Shortcodes: Easy embedding of polls in pages and posts.
- Clean Database: Dedicated tables for polls, votes, and rate limiting.
- Uninstall Clean: Completely removes all plugin data tables upon deletion.
- Download the plugin and upload it to the
/wp-content/plugins/directory, or install it directly from your WordPress plugins screen. - Activate the plugin through the 'Plugins' menu in WordPress.
- Navigate to 'Polls' in the admin sidebar to create your first poll.
- Optionally, configure global settings under 'Polls' > 'Settings'.
- Go to Polls > Add New.
- Enter the Question in the title field.
- In the Poll Options meta box, enter your answer choices (one per line/box).
- Click Add Option to add more choices.
- Publish the poll.
Copy the shortcode below into any page or post where you want the poll to appear.
[wp_poll id="POST_ID"]Replace POST_ID with the ID of the published Poll post.
If you want to show only the results of a poll without the voting form:
[wp_poll_results id="POST_ID"]Navigate to Polls > Settings in your WordPress dashboard to manage global behavior:
| Setting | Description |
|---|---|
| Allow Multiple Votes | Check to enable users to vote more than once (if other limits allow). |
| Hide Results Until Voting | Users must vote before they can see the percentage breakdown. |
| Allow Anonymous Voting | Users can vote without being logged in (IP tracking applies). |
| Votes per IP | Set the maximum number of votes allowed from a single IP address. |
- Database Tables: The plugin creates custom database tables on activation (
wp_polls,wp_poll_votes,wp_poll_rate_limit). - IP Validation: The plugin attempts to detect the real client IP even when behind proxies or load balancers using
X-Real-IP,X-Forwarded-For, andClient-IPheaders. - Data Cleanup: When the plugin is deleted via the WordPress interface, the custom database tables are automatically dropped to ensure no data residue remains.
Contributions are welcome! Please feel free to submit a Pull Request.
- Fork the project.
- Create your feature branch (
git checkout -b feature/AmazingFeature). - Commit your changes (
git commit -m 'Add some AmazingFeature'). - Push to the branch (
git push origin feature/AmazingFeature). - Open a Pull Request.
This project is licensed under the GPL v2 or later - see the LICENSE file for details.
Developed by Triii Technologies LLC.
- Plugin URI: https://triii.org/plugins/wp-poll-plugin
- Support: Contact support via the Plugin URI or create an issue in this repository.
Version: 1.1.7
Requires PHP: 5.6 or higher
Requires WP: 4.7 or higher