{"id":343011,"date":"2026-08-06T14:58:47","date_gmt":"2026-08-06T14:58:47","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/poll-forge\/"},"modified":"2026-08-21T23:29:22","modified_gmt":"2026-08-21T23:29:22","slug":"pollhive","status":"publish","type":"plugin","link":"https:\/\/kir.wordpress.org\/plugins\/pollhive\/","author":23533447,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.2.0","stable_tag":"1.2.0","tested":"7.1","requires":"6.4","requires_php":"8.1","requires_plugins":null,"header_name":"PollHive \u2013 Poll, Voting & Survey","header_author":"Webech","header_description":"Poll & contest system for WordPress. Logged-in users vote on text or image polls, change their vote at any time, and see live results with percentages and Chart.js charts.","assets_banners_color":"ffffff","last_updated":"2026-08-21 23:29:22","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"","header_author_uri":"https:\/\/webech.com","rating":0,"author_block_rating":0,"active_installs":0,"downloads":249,"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":"webech","date":"2026-08-06 15:51:49"},"1.0.1":{"tag":"1.0.1","author":"webech","date":"2026-08-07 04:27:56"},"1.1.0":{"tag":"1.1.0","author":"webech","date":"2026-08-14 14:40:07"},"1.1.1":{"tag":"1.1.1","author":"webech","date":"2026-08-21 11:20:18"},"1.2.0":{"tag":"1.2.0","author":"webech","date":"2026-08-21 23:29:22"}},"upgrade_notice":{"1.2.0":"<p>Major WooCommerce integration update adding product-specific polls, automatic product-page placement, scalable product management, and WooCommerce products as poll options, plus editor workflow, performance, compatibility, and accessibility improvements.<\/p>","1.1.1":"<p>Compatibility and metadata update for WordPress 7.1.<\/p>","1.1.0":"<p>Renamed internal identifiers to PollHive, improved legacy-installation compatibility, and removed the runtime MutationObserver layer for better admin stability.<\/p>","1.0.1":"<p>Confirmed compatibility with WordPress 7.0.3. Updated plugin metadata and WordPress.org listing assets. No feature or behavior changes.<\/p>","1.0.0":"<p>First stable release.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3637345,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3637345,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3637345,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3637345,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.0","1.0.1","1.1.0","1.1.1","1.2.0"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3636886,"resolution":"1","location":"assets","locale":"","width":900,"height":1400},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3636886,"resolution":"2","location":"assets","locale":"","width":900,"height":1300},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3636886,"resolution":"3","location":"assets","locale":"","width":900,"height":1300},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3636886,"resolution":"4","location":"assets","locale":"","width":1440,"height":1600},"screenshot-5.png":{"filename":"screenshot-5.png","revision":3636886,"resolution":"5","location":"assets","locale":"","width":1440,"height":900},"screenshot-6.png":{"filename":"screenshot-6.png","revision":3636886,"resolution":"6","location":"assets","locale":"","width":1440,"height":900},"screenshot-7.png":{"filename":"screenshot-7.png","revision":3636886,"resolution":"7","location":"assets","locale":"","width":1440,"height":900}},"screenshots":{"1":"The single-poll page \u2014 header stats, voting form, and related polls, created automatically.","2":"Image\/contest poll voting \u2014 Media Library images in a two-column grid with a selection badge.","3":"Live results \u2014 progress bars with automatic winner detection, plus the pie chart view.","4":"The filterable poll archive \u2014 status, category, and tag filters with three sort options.","5":"The admin dashboard \u2014 recent and popular polls, a 30-day activity chart, a getting-started checklist.","6":"The poll builder \u2014 drag-and-drop options, a Media Library image picker, tabbed settings.","7":"The Analytics screen \u2014 vote trends, device breakdown, top polls, and a live votes feed."}},"plugin_section":[],"plugin_tags":[76538,2254,364,11300,286],"plugin_category":[42,53],"plugin_contributors":[274643],"plugin_business_model":[],"class_list":["post-343011","plugin","type-plugin","status-publish","hentry","plugin_tags-elementor","plugin_tags-poll","plugin_tags-survey","plugin_tags-voting","plugin_tags-woocommerce","plugin_category-contact-forms","plugin_category-ratings-and-reviews","plugin_contributors-webech","plugin_committers-webech"],"banners":{"banner":"https:\/\/ps.w.org\/pollhive\/assets\/banner-772x250.png?rev=3637345","banner_2x":"https:\/\/ps.w.org\/pollhive\/assets\/banner-1544x500.png?rev=3637345","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/pollhive\/assets\/icon-128x128.png?rev=3637345","icon_2x":"https:\/\/ps.w.org\/pollhive\/assets\/icon-256x256.png?rev=3637345","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/pollhive\/assets\/screenshot-1.png?rev=3636886","caption":"The single-poll page \u2014 header stats, voting form, and related polls, created automatically."},{"src":"https:\/\/ps.w.org\/pollhive\/assets\/screenshot-2.png?rev=3636886","caption":"Image\/contest poll voting \u2014 Media Library images in a two-column grid with a selection badge."},{"src":"https:\/\/ps.w.org\/pollhive\/assets\/screenshot-3.png?rev=3636886","caption":"Live results \u2014 progress bars with automatic winner detection, plus the pie chart view."},{"src":"https:\/\/ps.w.org\/pollhive\/assets\/screenshot-4.png?rev=3636886","caption":"The filterable poll archive \u2014 status, category, and tag filters with three sort options."},{"src":"https:\/\/ps.w.org\/pollhive\/assets\/screenshot-5.png?rev=3636886","caption":"The admin dashboard \u2014 recent and popular polls, a 30-day activity chart, a getting-started checklist."},{"src":"https:\/\/ps.w.org\/pollhive\/assets\/screenshot-6.png?rev=3636886","caption":"The poll builder \u2014 drag-and-drop options, a Media Library image picker, tabbed settings."},{"src":"https:\/\/ps.w.org\/pollhive\/assets\/screenshot-7.png?rev=3636886","caption":"The Analytics screen \u2014 vote trends, device breakdown, top polls, and a live votes feed."}],"raw_content":"<!--section=description-->\n<p><strong>PollHive is a modern WordPress poll, voting, and survey plugin.<\/strong> Create interactive polls, collect authenticated votes, and show results with progress bars or charts. Use shortcodes anywhere, add a poll with the Elementor widget, or optionally connect polls to WooCommerce products.<\/p>\n\n<p>Create unlimited polls, run online voting contests, gather product feedback, and collect opinions with fast AJAX voting, configurable results, and a built-in analytics dashboard. Every poll automatically adopts your active theme's own colors, so it looks like part of your site from the first vote \u2014 no CSS required.<\/p>\n\n<p>For stores, the optional WooCommerce integration lets you attach a poll to selected product pages or use WooCommerce products as poll options. PollHive keeps the same familiar voting, result, chart, winner, and tie experience whether a poll uses regular options or product options.<\/p>\n\n<h4>Why PollHive<\/h4>\n\n<ul>\n<li><strong>Secure, authenticated voting.<\/strong> Every vote is tied to a logged-in WordPress account, with one-vote-per-person enforcement built in \u2014 so results mean something.<\/li>\n<li><strong>You control what visitors see, and when.<\/strong> Results can stay hidden until someone votes, or until the poll closes \u2014 your choice, per poll.<\/li>\n<li><strong>On-brand automatically.<\/strong> Theme color detection is built in \u2014 no settings screen full of color pickers required.<\/li>\n<li><strong>Nothing happens without your permission.<\/strong> The REST API is off by default. Uninstalling keeps your data untouched unless you explicitly opt in to remove it.<\/li>\n<li><strong>Built for every visitor.<\/strong> Keyboard-operable, ARIA-labeled, reduced-motion aware \u2014 not an afterthought.<\/li>\n<\/ul>\n\n<h4>Powerful WordPress Polls &amp; Voting<\/h4>\n\n<p>\u2714 Unlimited polls &amp; options\n\u2714 Text or image polls (contest voting included)\n\u2714 Single or multiple choice\n\u2714 AJAX voting \u2014 instant, no page reload\n\u2714 Logged-in, one-vote-per-person enforcement\n\u2714 Optional vote changing\n\u2714 Poll scheduling &amp; automatic closing\n\u2714 Results visible always, after voting, or after close \u2014 your choice\n\u2714 Progress bars or a live pie chart (Chart.js)\n\u2714 Automatic theme color matching\n\u2714 Light \/ Dark \/ Auto display mode\n\u2714 Categories &amp; free-form tags\n\u2714 Filterable, sortable poll archive \u2014 created automatically\n\u2714 5 shortcodes + native Elementor widget\n\u2714 Share popover \u2014 10 platforms, your pick of which\n\u2714 Built-in analytics dashboard\n\u2714 Drag-and-drop poll builder, no code\n\u2714 Optional read-only REST API (off by default)\n\u2714 Translation-ready, POT file included\n\u2714 Full keyboard &amp; screen-reader accessibility<\/p>\n\n<h4>WooCommerce Polls &amp; Product Voting<\/h4>\n\n<p>PollHive\u2019s optional WooCommerce integration helps you collect product feedback and run product-preference polls without creating a separate voting system.<\/p>\n\n<ul>\n<li>Attach one poll to one or more WooCommerce products, and attach multiple polls to a product.<\/li>\n<li>Turn <strong>Automatic Product Page Placement<\/strong> on or off for each poll. When enabled, choose Before Add to Cart, After Add to Cart, After Product Summary, or After Product Description.<\/li>\n<li>Manage product attachments in a compact <strong>Manage Products<\/strong> dialog with attached-product review, on-demand search, and paginated results for larger catalogs.<\/li>\n<li>Search products by product title, SKU, or ID; PollHive does not preload the catalog.<\/li>\n<li>Use a <strong>WooCommerce Product<\/strong> as a poll option, including its current product title and image. Product options can be mixed with normal text and image options.<\/li>\n<li>Use PollHive\u2019s existing voting, results, charts, winner, tie, and vote-changing behavior with WooCommerce product options.<\/li>\n<li>Keep manual shortcode placement available independently when automatic placement is off.<\/li>\n<\/ul>\n\n<p>WooCommerce is optional. PollHive\u2019s normal polls, shortcodes, and results continue to work when WooCommerce is not installed, inactive, or disabled in PollHive.<\/p>\n\n<p>For a product-page poll: create or edit a poll, open its WooCommerce tab, attach the relevant products, choose the automatic product-page location, then publish or update. For a product-preference poll: add an option, select <strong>WooCommerce Product<\/strong>, find the product, and publish as usual.<\/p>\n\n<h4>Elementor Poll Widget<\/h4>\n\n<p>PollHive includes a native Elementor poll widget when Elementor is active. Select a poll and display its standard PollHive voting or results view inside an Elementor layout; Elementor Pro is not required for the widget itself. The widget uses the same WordPress voting, result-visibility, and chart behavior as a shortcode.<\/p>\n\n<h4>Detailed Features<\/h4>\n\n<p><strong>Secure, authenticated voting<\/strong><\/p>\n\n<p>Every vote is tied to a logged-in WordPress account, with one vote per person per poll \u2014 updatable if you allow vote changing, locked if you don't. Votes submit by AJAX, instantly, with no page reload, so results reflect real people, not repeat clicks.<\/p>\n\n<p><strong>You decide when results go public<\/strong><\/p>\n\n<p>Always visible, visible only after voting, or only after the poll closes \u2014 set site-wide or per individual poll. It's enforced the same way everywhere: on the page, in AJAX responses, and in the REST API if you turn that on.<\/p>\n\n<p><strong>Results people actually read<\/strong><\/p>\n\n<p>A progress-bar list, an interactive pie chart, or both with a tab switcher. Winners are called out automatically. A genuine tie is labeled as a tie \u2014 PollHive won't quietly invent a winner.<\/p>\n\n<p><strong>On-brand automatically<\/strong><\/p>\n\n<p>PollHive reads your theme's own primary color \u2014 Astra's Global Color Palette, or a block theme's theme.json accent \u2014 and derives the entire poll's palette from it, chart colors included. Every other theme gets a clean built-in fallback. Prefer a fixed look instead? Set Light, Dark, or Auto display mode in Settings.<\/p>\n\n<p><strong>Image polls &amp; contest voting<\/strong><\/p>\n\n<p>Any option can carry a Media Library image, rendered as a photo grid automatically \u2014 ready for design contests, \"pick your favorite\" polls, or any visual choice.<\/p>\n\n<p><strong>Scheduling that runs itself<\/strong><\/p>\n\n<p>Set a poll to open at a future date and close automatically at an expiry date, checked hourly. Set it up once; it starts and stops on its own.<\/p>\n\n<p><strong>Organized like your content<\/strong><\/p>\n\n<p>Categories (hierarchical, with their own admin screen) and free-form tags (created inline while building a poll). A filterable, sortable poll archive page \u2014 status, category, tag filters, Newest \/ Most Voted \/ Trending sort \u2014 is created automatically the moment you activate the plugin.<\/p>\n\n<p><strong>A poll and survey maker that works anywhere<\/strong><\/p>\n\n<p>A drag-and-drop builder creates the poll; five shortcodes place it \u2014 a specific poll, an auto-picked latest\/random\/popular poll, or the full archive \u2014 in any page, post, or widget area, in the Block Editor or Classic Editor. A native Elementor poll widget is available too, if Elementor is your builder \u2014 it's an option, not a requirement.<\/p>\n\n<p><strong>Share without leaving the page<\/strong><\/p>\n\n<p>A built-in popover for Facebook, X, WhatsApp, LinkedIn, Telegram, Reddit, Pinterest, Threads, email, and copy-link. Turn on only the platforms you want.<\/p>\n\n<p><strong>Real analytics, not just a vote count<\/strong><\/p>\n\n<p>Vote trends over time, desktop\/mobile\/tablet breakdown, top-performing polls, and a live recent-votes feed \u2014 from your wp-admin dashboard, no separate plugin required.<\/p>\n\n<p><strong>Nothing hidden, nothing forced<\/strong><\/p>\n\n<p>The REST API is read-only and off until you enable it \u2014 and what it returns still respects each poll's own results-visibility setting. Uninstalling leaves your data untouched unless you explicitly opt in to full cleanup.<\/p>\n\n<h4>What Can You Use PollHive For?<\/h4>\n\n<ul>\n<li>Website opinion polls and community voting<\/li>\n<li>Blog reader and editorial polls<\/li>\n<li>Image voting and design-preference contests<\/li>\n<li>Product preference polls and simple product feedback<\/li>\n<li>WooCommerce product voting on selected product pages<\/li>\n<li>Classroom, club, and internal-team surveys<\/li>\n<li>Feature-preference voting and customer research<\/li>\n<\/ul>\n\n<h4>Perfect For<\/h4>\n\n<ul>\n<li>Community websites and member polls<\/li>\n<li>Customer feedback and product research<\/li>\n<li>Image contests and design voting<\/li>\n<li>Educational and classroom opinion polls<\/li>\n<li>Sports clubs and fan polls<\/li>\n<li>Internal team decisions<\/li>\n<li>Opinion polls embedded in blog posts<\/li>\n<\/ul>\n\n<h4>Works Great With<\/h4>\n\n<ul>\n<li><strong>WordPress 6.4+<\/strong> \u2014 no dependencies required to run<\/li>\n<li><strong>Any WordPress theme<\/strong> \u2014 automatic color matching for Astra and block themes, a clean fallback for everything else<\/li>\n<li><strong>The Block Editor and Classic Editor<\/strong> \u2014 shortcodes work in either<\/li>\n<li><strong>Elementor<\/strong> \u2014 a native poll widget, if you use it (not required)<\/li>\n<li><strong>WooCommerce<\/strong> \u2014 optional product-page polls and WooCommerce product options when you enable the integration<\/li>\n<li><strong>Any shortcode-compatible page builder<\/strong> \u2014 PollHive's display is shortcode-based at its core, so it places wherever a WordPress shortcode can go<\/li>\n<\/ul>\n\n<p>Additional native integrations are on the roadmap and are not part of the current version.<\/p>\n\n<p><strong>PollHive is free to install and takes minutes to set up. Add the plugin, create your first poll, and start collecting real, authenticated votes today.<\/strong><\/p>\n\n<!--section=installation-->\n<p><strong>Requirements:<\/strong> WordPress 6.4+, PHP 8.1+.<\/p>\n\n<ol>\n<li>Upload the <code>pollhive<\/code> folder to <code>\/wp-content\/plugins\/<\/code>, or install through <strong>Plugins \u2192 Add New<\/strong> by searching \"PollHive\".<\/li>\n<li>Activate the plugin. It automatically creates its database tables and a \"Polls\" archive page (or adopts an existing page containing the <code>[pollhive_archive]<\/code> shortcode).<\/li>\n<li>Go to <strong>PollHive \u2192 Add New<\/strong>, add a title and two or more options, publish.<\/li>\n<li>Display it: paste the shortcode into any page, post, or widget \u2014 <code>[pollhive id=\"123\"]<\/code> \u2014 or use the Elementor widget, or link to the poll's own automatic page.<\/li>\n<li>Optional: visit <strong>PollHive \u2192 Settings<\/strong> to adjust voting rules, results visibility, and share platforms. Every setting has a working default.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"can%20guests%20vote%20without%20an%20account%3F\"><h3>Can guests vote without an account?<\/h3><\/dt>\n<dd><p>Voting requires a logged-in WordPress account, which is what makes one-vote-per-person enforcement reliable. Guest voting is under consideration for a future release.<\/p><\/dd>\n<dt id=\"can%20someone%20change%20their%20vote%3F\"><h3>Can someone change their vote?<\/h3><\/dt>\n<dd><p>Yes, if allowed \u2014 site-wide or per poll. Their old vote is replaced, never duplicated.<\/p><\/dd>\n<dt id=\"when%20do%20results%20become%20visible%3F\"><h3>When do results become visible?<\/h3><\/dt>\n<dd><p>Your choice: always, only after voting, or only after the poll closes. Site-wide default, overridable per poll.<\/p><\/dd>\n<dt id=\"bar%20chart%20or%20pie%20chart%3F\"><h3>Bar chart or pie chart?<\/h3><\/dt>\n<dd><p>A progress-bar list, an interactive pie chart (Chart.js), or both with a tab switcher \u2014 set under Settings &gt; Results.<\/p><\/dd>\n<dt id=\"is%20pollhive%20an%20elementor%20plugin%3F\"><h3>Is PollHive an Elementor plugin?<\/h3><\/dt>\n<dd><p>No. It's a standalone WordPress poll, voting, and survey plugin that works on any theme via shortcodes. A native Elementor widget is available as one option, not a requirement.<\/p><\/dd>\n<dt id=\"does%20pollhive%20work%20with%20woocommerce%3F\"><h3>Does PollHive work with WooCommerce?<\/h3><\/dt>\n<dd><p>Yes. Enable the optional WooCommerce integration in <strong>PollHive \u2192 Settings \u2192 Integrations<\/strong>. You can attach a poll to selected products, automatically place it on those product pages, and use WooCommerce products as poll options. PollHive does not require WooCommerce for its normal poll features.<\/p><\/dd>\n<dt id=\"can%20i%20add%20a%20poll%20to%20a%20woocommerce%20product%20page%3F\"><h3>Can I add a poll to a WooCommerce product page?<\/h3><\/dt>\n<dd><p>Yes. In the poll editor\u2019s WooCommerce tab, attach the product and enable Automatic Product Page Placement. Choose Before Add to Cart, After Add to Cart, After Product Summary, or After Product Description. Custom product templates that do not expose the expected WooCommerce location use PollHive\u2019s supported fallback, so the exact selected location may not be available in every custom template.<\/p><\/dd>\n<dt id=\"can%20customers%20vote%20between%20woocommerce%20products%3F\"><h3>Can customers vote between WooCommerce products?<\/h3><\/dt>\n<dd><p>Yes. Choose <strong>WooCommerce Product<\/strong> for a poll option, then search for and select a simple product or variable parent product. The product\u2019s current title and image appear in PollHive\u2019s existing option cards. Individual product variations are not voting options in this release.<\/p><\/dd>\n<dt id=\"can%20i%20still%20use%20a%20shortcode%20for%20a%20woocommerce%20poll%3F\"><h3>Can I still use a shortcode for a WooCommerce poll?<\/h3><\/dt>\n<dd><p>Yes. A poll shortcode works independently of automatic product-page placement. Turning automatic placement off keeps the product relationship and lets you place the poll manually wherever a shortcode is supported.<\/p><\/dd>\n<dt id=\"does%20pollhive%20have%20a%20native%20gutenberg%20block%3F\"><h3>Does PollHive have a native Gutenberg block?<\/h3><\/dt>\n<dd><p>Not yet. The <code>[pollhive]<\/code> shortcode already works inside the Block Editor's Shortcode block. Additional native integrations may be added in future releases.<\/p><\/dd>\n<dt id=\"does%20it%20create%20pages%20automatically%3F\"><h3>Does it create pages automatically?<\/h3><\/dt>\n<dd><p>Yes \u2014 a filterable \"Polls\" archive page on activation (or it adopts an existing one), plus an automatic page for every individual poll.<\/p><\/dd>\n<dt id=\"will%20it%20match%20my%20theme%27s%20colors%3F\"><h3>Will it match my theme's colors?<\/h3><\/dt>\n<dd><p>Automatically, for Astra's Global Color Palette and any block theme with a theme.json primary color. Every other theme gets a built-in fallback accent.<\/p><\/dd>\n<dt id=\"does%20it%20support%20categories%20and%20tags%3F\"><h3>Does it support categories and tags?<\/h3><\/dt>\n<dd><p>Yes, both native WordPress taxonomies, with automatic filters on the poll archive.<\/p><\/dd>\n<dt id=\"can%20visitors%20share%20a%20poll%3F\"><h3>Can visitors share a poll?<\/h3><\/dt>\n<dd><p>Yes \u2014 a share popover covering 10 platforms, each toggleable in Settings.<\/p><\/dd>\n<dt id=\"is%20there%20a%20rest%20api%3F\"><h3>Is there a REST API?<\/h3><\/dt>\n<dd><p>Yes, read-only, off by default. What it returns still respects each poll's results-visibility setting.<\/p><\/dd>\n<dt id=\"where%20is%20poll%20data%20stored%3F\"><h3>Where is poll data stored?<\/h3><\/dt>\n<dd><p>Dedicated database tables for polls, options, and votes, plus native WordPress taxonomies for categories and tags.<\/p><\/dd>\n<dt id=\"what%20happens%20to%20my%20data%20if%20i%20uninstall%3F\"><h3>What happens to my data if I uninstall?<\/h3><\/dt>\n<dd><p>Nothing, by default. Enable \"Remove data on uninstall\" under Settings &gt; General first if you want a full cleanup.<\/p><\/dd>\n<dt id=\"does%20it%20support%20image%20or%20contest-style%20polls%3F\"><h3>Does it support image or contest-style polls?<\/h3><\/dt>\n<dd><p>Yes \u2014 any option can carry a Media Library image, rendered as a photo grid automatically.<\/p><\/dd>\n<dt id=\"is%20pollhive%20translation-ready%3F\"><h3>Is PollHive translation-ready?<\/h3><\/dt>\n<dd><p>Yes \u2014 a complete POT file ships with the plugin, with a consistent text domain throughout.<\/p><\/dd>\n<dt id=\"is%20pollhive%20accessible%3F\"><h3>Is PollHive accessible?<\/h3><\/dt>\n<dd><p>The share dialog is fully keyboard-operable, interactive elements carry ARIA labels, and the plugin respects visitors' reduced-motion preference.<\/p><\/dd>\n<dt id=\"how%20do%20i%20get%20support%3F\"><h3>How do I get support?<\/h3><\/dt>\n<dd><p>Email contact@webech.com, or use the Support link on the PollHive dashboard in wp-admin.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.2.0<\/h4>\n\n<p><strong>WooCommerce Integration<\/strong>\n* New: Added an optional native WooCommerce integration, available from <strong>PollHive \u2192 Settings \u2192 Integrations<\/strong>.\n* New: Added dependency-aware <strong>Install WooCommerce<\/strong> and <strong>Activate WooCommerce<\/strong> actions for administrators when WooCommerce is not installed or is inactive.\n* New: Added a separate PollHive WooCommerce enable\/disable control, so WooCommerce functionality remains opt-in.\n* Improved: WooCommerce code now loads only when WooCommerce is active and its PollHive integration is enabled. PollHive continues to work normally when WooCommerce is unavailable or inactive.\n* Improved: WooCommerce dependency detection and install, activate, loading, enabled, disabled, and status states now use PollHive\u2019s shared integration control system.\n* Improved: WooCommerce is never required for PollHive core; disabling the integration prevents WooCommerce-specific functionality from loading while leaving PollHive available.<\/p>\n\n<p><strong>Product-Specific Polls<\/strong>\n* New: Attach a PollHive poll to one or more WooCommerce products.\n* New: Attach multiple PollHive polls to a WooCommerce product and manage those links from either the PollHive poll editor or the WooCommerce product editor.\n* New: Kept product relationships lightweight: PollHive uses current WooCommerce product data instead of copying product titles, images, prices, stock, or catalog metadata into poll relationships.\n* Improved: Product relationships are preserved when a product is moved to the Trash and become available again when it is restored. Permanently deleting a product removes only its PollHive relationship links.\n* Fixed: Deleting a PollHive poll cleans its related product links without deleting WooCommerce products or historical PollHive vote data.\n* Developer: Product links remain separate from WooCommerce catalog data, and both editor directions read and write the same relationship source.<\/p>\n\n<p><strong>Manage Products<\/strong>\n* New: Added a scalable <strong>Manage Products<\/strong> modal to the WooCommerce tab in the poll editor.\n* New: Added <strong>Attached Products<\/strong> and <strong>Add Products<\/strong> tabs for reviewing, attaching, and detaching products without expanding the poll editor sidebar.\n* New: Search WooCommerce products by product title, SKU, or product ID, with relevant partial-title matching and bounded, paginated results.\n* Improved: Added clear Attach, Attached, and Remove states, live attached-product counts, and incremental loading for stores with larger catalogs.\n* Improved: Product searches and attached-product lists load on demand rather than preloading the WooCommerce catalog.\n* Improved: Search is debounced, returns 20 products per request, promotes exact ID and SKU matches where available, and shows Load More only when another page exists.\n* Improved: Attached and staged product relationships stay synchronized in the modal, so attachment changes appear immediately before the poll is saved.\n* Improved: Modal results scroll internally and the product list stays out of the narrow poll-editor sidebar.<\/p>\n\n<p><strong>Automatic Product Page Placement<\/strong>\n* New: Added <strong>Automatic Product Page Placement<\/strong> controls for polls attached to WooCommerce products.\n* New: Choose <strong>Before Add to Cart<\/strong>, <strong>After Add to Cart<\/strong>, <strong>After Product Summary<\/strong>, or <strong>After Product Description<\/strong>.\n* New: A poll now owns one placement setting shared by all products attached to that poll; changing it updates where that poll appears across its attached products.\n* New: Turning automatic placement off keeps product relationships intact and leaves shortcode placement available independently.\n* New: New product attachments automatically inherit the poll\u2019s current automatic-placement setting and selected location. Re-enabling placement retains that selected location.\n* Compatibility: Uses standard WooCommerce product hooks first, supports WooCommerce block product rendering, and provides a safe product-page fallback for custom templates that do not expose the expected hook positions. Custom templates using the fallback may not match the exact selected placement location.\n* Fixed: Added product-page duplicate-render protection so an automatically placed poll is rendered only once even when more than one supported template path is present.<\/p>\n\n<p><strong>WooCommerce Products as Poll Options<\/strong>\n* New: Added a <strong>WooCommerce Product<\/strong> poll-option type alongside existing text and image options.\n* New: Product options display the current WooCommerce product title and image inside PollHive\u2019s existing poll cards, voting flow, and results views.\n* New: Product options support simple products and variable parent products. Individual WooCommerce variations are not voting options in this release.\n* New: Product options can be mixed with normal PollHive text and image options in the same poll.\n* Improved: Product details are resolved live from WooCommerce, so title and image updates are reflected without duplicating catalog data in PollHive.\n* Compatibility: Votes remain tied to PollHive option IDs and continue to use existing vote changing, result visibility, bar and pie charts, winner, tie, and multiple-choice behavior.\n* Hardened: Deleted or unavailable product references render safely, cannot receive new votes, and retain historical PollHive vote data.\n* Compatibility: WooCommerce product IDs are source references only. Disabling or deactivating WooCommerce preserves product-option references and PollHive vote history.<\/p>\n\n<p><strong>Poll Editor and Integrations Workflow<\/strong>\n* Improved: Updating or publishing a poll returns to that poll\u2019s editor instead of unnecessarily returning to All Polls.\n* Improved: The active poll-editor tab is preserved after saving, with clearer Saved, Unsaved changes, and Saving feedback.\n* Improved: WooCommerce relationship changes participate in the normal poll save workflow.\n* Improved: Standardized integration install, activate, enable, loading, and responsive action-control states.\n* Improved: First Publish returns to the newly created poll editor, and saving uses a Post\/Redirect\/Get flow to prevent accidental duplicate submissions.\n* Improved: Manage Products changes remain staged until Update, allowing product changes to follow the same review-and-save workflow as other poll edits.<\/p>\n\n<p><strong>Accessibility, Performance, and Hardening<\/strong>\n* Improved: Added keyboard-friendly Manage Products modal behavior, including focus management and close controls for the close button, Escape key, and backdrop.\n* Improved: Refined action states, pointer behavior, and hover\/focus contrast for PollHive modal controls.\n* Improved: Added bounded product searches, paginated relationship management, indexed product-to-poll lookups, and conditional WooCommerce loading.\n* Fixed: Improved automatic-placement saving and attachment-state synchronization, including immediate updates between the Add Products and Attached Products views.\n* Fixed: Show Load More controls only when another result page is available.\n* Compatibility: Existing text and image polls continue to work. The 1.2.0 database upgrade safely preserves existing polls, options, votes, settings, categories, and tags; existing options use the current text option model.\n* Developer: Improved WordPress internationalization compliance with complete translator comments for placeholder-based strings.\n* Improved: Added an ARIA-labelled keyboard-accessible product manager with focus containment, focus restoration, visible focus states, and close support through the close button, Escape key, and backdrop.\n* Improved: Refined shared modal action styles for readable hover\/focus states, responsive controls, pointer cursors on enabled actions, and distinct disabled\/status states.\n* Improved: Added per-request product and relationship lookup caching to avoid repeated WooCommerce resolution during product-page rendering.\n* Fixed: Improved product-search relevance, stale empty-state handling, deleted-product handling, and permanent product-deletion relationship cleanup.\n* Developer: Added a modular integration manager, generic option source fields, poll-level WooCommerce placement configuration, and release packaging rules that exclude internal documentation and development files.<\/p>\n\n<h4>1.1.1<\/h4>\n\n<ul>\n<li>Confirmed compatibility with WordPress 7.1.<\/li>\n<li>Updated the PollHive display name for clearer identification in WordPress.<\/li>\n<li>Updated plugin metadata for the latest WordPress release.<\/li>\n<\/ul>\n\n<h4>1.1.0<\/h4>\n\n<ul>\n<li>Renamed remaining legacy internal identifiers to the PollHive naming convention.<\/li>\n<li>Improved compatibility handling for legacy installations.<\/li>\n<li>Removed runtime MutationObserver compatibility layer.<\/li>\n<li>Improved admin performance and stability.<\/li>\n<li>Preserved compatibility with existing 1.0.x installations.<\/li>\n<\/ul>\n\n<h4>1.0.1<\/h4>\n\n<ul>\n<li>Confirmed compatibility with WordPress 7.0.3.<\/li>\n<li>Updated plugin metadata and WordPress.org listing assets.<\/li>\n<li>No feature or behavior changes.<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<p><strong>Polls &amp; Voting<\/strong>\n* Initial public release.\n* Text and image polls, single- or multiple-choice, with scheduling and automatic closing.\n* Live AJAX voting with vote-changing support and optional rate limiting.<\/p>\n\n<p><strong>Results<\/strong>\n* Progress-bar and pie chart (Chart.js) result views, with per-poll visibility rules.<\/p>\n\n<p><strong>Pages &amp; Display<\/strong>\n* Dedicated single-poll pages and a filterable, sortable poll archive.\n* Five shortcodes and a native Elementor widget.\n* Automatic theme color adoption (Astra Global Colors, block-theme theme.json palettes).\n* Share popover with configurable platforms.<\/p>\n\n<p><strong>Organization<\/strong>\n* Poll categories and tags, both native WordPress taxonomies.<\/p>\n\n<p><strong>Admin<\/strong>\n* Dashboard, Analytics, poll builder, and Categories screens.<\/p>\n\n<p><strong>Developer<\/strong>\n* Optional read-only REST API, off by default.<\/p>\n\n<p><strong>Compliance &amp; Quality<\/strong>\n* Full internationalization (translation-ready, POT file included).\n* Accessibility: keyboard-operable dialogs, ARIA labeling, reduced-motion support, WCAG AA contrast.<\/p>","raw_excerpt":"Create interactive WordPress polls, voting, and surveys with AJAX results, WooCommerce product voting, and an Elementor poll widget.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/kir.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/343011","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/kir.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/kir.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/kir.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=343011"}],"author":[{"embeddable":true,"href":"https:\/\/kir.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/webech"}],"wp:attachment":[{"href":"https:\/\/kir.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=343011"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/kir.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=343011"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/kir.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=343011"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/kir.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=343011"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/kir.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=343011"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/kir.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=343011"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}