CS Post Comment Reactions
CS Post Comment Reactions transforms the standard WordPress comment section into a fully social, interactive experience — no page reloads, no third-party services.
Core Features
One-Button Cycling Reactions A single button cycles through three states: neutral → 👍 Liked → 👎 Disliked → neutral. Counts update live via AJAX without refreshing the page.
Media-First Comments Every comment must include at least one image. A floating 📎 icon at the bottom-right corner of the comment textarea lets commenters attach files instantly — or drag and drop directly onto the textarea.
Supported Formats JPG, JPEG, PNG, GIF, WEBP. Optional MP4 video. All types and the maximum file size are configurable.
Works With Any Theme
Hooks into WordPress’s native comment_text filter and comment_form action — no template overrides, no shortcodes.
Nested / Threaded Comments
Fully compatible with WordPress’s built-in wp_list_comments() at any nesting depth.
Guest Reactions Allow logged-out visitors to react. Guest identity is tracked via a localStorage UUID mirrored to a cookie, with an IP-address fallback.
Rate Limiting Prevents reaction spam: 10 reactions per user / IP per 5 minutes, enforced server-side using WordPress transients.
Admin Settings Panel Full settings page at Settings → Comment Reactions, covering features, button labels, icons, upload rules, comment sort order, and a one-click reaction data reset. Includes a live statistics widget.
Security First Nonce verification on every AJAX request and every form submission. All input sanitised; all output escaped. Upload MIME type and size validation server-side. Ownership check prevents foreign attachment IDs from being submitted.
Translation Ready
All strings use the cs-post-comment-reactions text domain.
Requirements
- WordPress 5.8 or higher
- PHP 7.4 or higher
Privacy Policy
This plugin does not transmit any data to external servers or third parties.
For logged-in users, reactions are stored against their WordPress user ID in a local database table.
For guest users (when enabled), a randomly-generated identifier is stored in the visitor’s browser (localStorage and a cookie) and optionally their IP address is recorded in the local database solely to prevent duplicate reactions.
All data is removed upon plugin uninstallation or by using the Reset All Reactions function.
Site administrators are responsible for disclosing this data storage in their own Privacy Policy if required by applicable law (e.g. GDPR).
