Plugin info

Total downloads: 77
Active installs: 0
Total reviews: 0
Average rating: 0
Support threads opened: 0
Support threads resolved: 0 (0%)
Available in: 1 language(s)
Contributors: 1
Last updated: 11/27/2025 (34 days ago)
Added to WordPress: 10/27/2025 (0 years old)
Minimum WordPress version: 5.5
Tested up to WordPress version: 6.9
Minimum PHP version: f

Maintenance & Compatibility

Maintenance score

Actively maintained • Last updated 34 days ago

59/100

Is Post Engagement Widget abandoned?

Likely maintained (last update 34 days ago).

Compatibility

Requires WordPress: 5.5
Tested up to: 6.9
Requires PHP: f

Similar & Alternatives

Explore plugins with similar tags, and compare key metrics like downloads, ratings, updates, support, and WP/PHP compatibility.

Comments Like Dislike
Rating 4.6/5 (38 reviews)Active installs 9,000
Posts Like Dislike
Rating 4.3/5 (22 reviews)Active installs 6,000
Kodex Posts likes
Rating 5.0/5 (15 reviews)Active installs 1,000
WPAC Social Tools – Like, React & Share
Rating 5.0/5 (3 reviews)Active installs 300
Simple Vote – Share your Thought, By A Like/Dislike Vote!
Rating 4.5/5 (2 reviews)Active installs 90

Description

The Post Engagement Widget provides a simple yet powerful way to gather user feedback on your content. With just a few clicks, you can add beautiful, AJAX-powered Like and Dislike buttons to your posts and comments, encouraging visitors to interact with your site.

The plugin is designed to be lightweight and easy to use. The settings panel gives you full control over colors, labels, and display rules, while the included shortcode allows you to place the voting buttons anywhere you want.

Key Features for Initial Release:

  • AJAX-Powered Voting: No page reloads. The interface updates instantly for a smooth, modern user experience.
  • Post & Comment Engagement: Add like/dislike buttons to both posts and comments right out of the box.
  • Guest Voting: Optionally allow non-logged-in users to vote (uses cookies to prevent duplicate votes).
  • Full Customization: Use the built-in color pickers to match the buttons to your theme’s design.
  • Emoji or Text Labels: Choose between classic “Like/Dislike” text or modern 👍/👎 emoji labels.
  • Automatic Display on Posts: Automatically add voting buttons to the end of all your blog posts with a single checkbox.
  • Universal Shortcode: Use the [engage_widgetment_widget] shortcode to manually place buttons on any page, product, or custom post type.
  • Clean Uninstall: When you delete the plugin, it cleans up all its settings and data from your database, leaving no trace behind.
  • Developer Friendly: Highly extensible with a complete set of actions and filters for advanced customization.

For Developers (Advanced Customization)

We’ve included several hooks to allow you to extend the plugin’s functionality. Here are some examples of what you can do.

Filters

engage_widget_auto_display_post_types
Modify the list of post types where buttons are automatically displayed.

add_filter( 'engage_widget_auto_display_post_types', 'add_my_cpt_for_voting' );
function add_my_cpt_for_voting( $post_types ) {
    // Add support for a 'portfolio' custom post type
    $post_types[] = 'portfolio';
    return $post_types;
}

engage_widget_render_buttons_html
Filter the final HTML of the buttons for posts.

add_filter( 'engage_widget_render_buttons_html', 'my_custom_post_buttons_wrapper', 10, 2 );
function my_custom_post_buttons_wrapper( $html, $post_id ) {
    return '
' . $html . '
'; }

engage_widget_render_comment_buttons_html
Filter the final HTML of the buttons for comments.

add_filter( 'engage_widget_render_comment_buttons_html', 'my_custom_comment_buttons_wrapper', 10, 2 );
function my_custom_comment_buttons_wrapper( $html, $comment_object ) {
    return '
' . $html . '
'; }

engage_widget_user_can_vote
Add custom permission logic to prevent a vote. Return false to block the vote.

add_filter( 'engage_widget_user_can_vote', 'prevent_voting_on_own_post', 10, 4 );
function prevent_voting_on_own_post( $permission, $item_type, $item_id, $user_id ) {
    if ( $item_type === 'post' && $user_id > 0 ) {
        if ( get_post_field( 'post_author', $item_id ) == $user_id ) {
            return false; // Prevent users from voting on their own posts
        }
    }
    return $permission;
}

Actions

engage_widget_after_vote_processed
Fire a custom action after a vote is successfully recorded.

add_action( 'engage_widget_after_vote_processed', 'my_custom_action_on_vote', 10, 4 );
function my_custom_action_on_vote( $item_type, $item_id, $vote, $user_id ) {
    if ( $item_type === 'post' && $vote === 'like' ) {
        // Example: Send a notification or update a transient
        error_log( "User {$user_id} liked post {$item_id}." );
    }
}

engage_widget_after_settings_fields
Add your own custom fields to the plugin’s settings page.

add_action( 'engage_widget_after_settings_fields', 'my_custom_engage_widget_setting' );
function my_custom_engage_widget_setting( $settings ) {
    // HTML for your new setting field
}

Installation

From your WordPress dashboard (easiest method):

  1. Navigate to ‘Plugins’ > ‘Add New’.
  2. Search for “Post Engagement Widget”.
  3. Find the plugin and click ‘Install Now’.
  4. Activate the plugin through the ‘Plugins’ menu in WordPress.
  5. Go to ‘Settings’ > ‘Post Engagement’ to configure the plugin.

Manual Installation:

  1. Download the plugin ZIP file from WordPress.org.
  2. Unzip the file to get the post-engagement-widget directory.
  3. Upload the post-engagement-widget directory to the /wp-content/plugins/ directory on your server via FTP.
  4. Activate the plugin through the ‘Plugins’ menu in WordPress.
  5. Go to ‘Settings’ > ‘Post Engagement’ to configure the plugin.

Frequently Asked Questions

How do I display the buttons on a Page or a Custom Post Type?

While the plugin can automatically display buttons on Posts, you can use the shortcode [engage_widgetment_widget] to display them anywhere else. Simply edit the Page, Product, or custom post type and add the shortcode to the content where you want the buttons to appear.

Can non-logged-in users (guests) vote?

Yes. You can enable this feature by going to Settings > Post Engagement and checking the “Allow Guest Voting” option. The plugin uses a browser cookie to prevent the same guest from voting multiple times on the same item.

The buttons are not showing up automatically on my posts. What should I do?

Please go to Settings > Post Engagement and ensure the “Automatically display buttons on all Posts” option is checked.

How do I change the button colors or switch from emojis to text?

All customization options are available on the settings page at Settings > Post Engagement. You can use the color pickers to change the Like/Dislike button colors and use the dropdown to select between “Emoji” and “Text” labels.

What happens to the voting data if I uninstall the plugin?

The plugin is designed to be clean. When you click “Delete” from the WordPress plugins page, the included uninstall.php file will run, completely removing all settings and voting data (post, comment, and user meta) from your database.

Review feed

No reviews available

Screenshots

  1. The Like/Dislike buttons displayed at the end of a blog post.

    The Like/Dislike buttons displayed at the end of a blog post.

  2. Engagement buttons shown below a user's comment.

    Engagement buttons shown below a user's comment.

  3. The simplified settings page in the WordPress admin dashboard (<code>Settings > Post Engagement</code>).

    The simplified settings page in the WordPress admin dashboard (Settings > Post Engagement).

Changelog

1.0.0

  • Initial public release on WordPress.org.
  • Features included:
    • AJAX-powered Like/Dislike voting for posts and comments.
    • Settings panel with color pickers and label type selection (Emoji/Text).
    • Option to enable/disable guest voting (with cookie-based duplicate prevention).
    • Simple one-click option to automatically display buttons on all Posts.
    • [engage_widgetment_widget] shortcode for manual placement on any content type.
    • Optimistic UI updates for an instant, responsive user experience.
    • Clean uninstall process that removes all data from the database.
    • Comprehensive set of developer hooks (actions and filters) for extensibility.