Previously on the CogitActive Saga:
After countless hours of searching, one plugin emerged from the pack. Yes, one! It (almost) met my standards, aligned with my vision, and, against all odds, brought my text button dream back to life.
My journey to find the perfect reaction plugin has been anything but smooth. It all began with a simple yet specific goal: to boost user engagement with a plugin that allowed visitors to leave quick, meaningful reactions via text buttons—definitely not emojis! Initially, things looked promising when I turned to the React & Share plugin. But then came the unexpected blow—it abruptly discontinued its freemium plan, throwing a wrench into my carefully laid plans. Scrambling for an alternative, I reluctantly settled, back in 2020, on the Reaction Buttons plugin by Jakob Lenfers. Outdated and thus risky, it was far from ideal, but it served as a necessary stopgap. A temporary measure… or so I thought.
Fast forward to 2025, and I was still relying on that so-called ‘temporary’ plugin—until disaster struck. “The Plugin ‘Reaction Buttons’ has been removed from wordpress.org [… it] contains an unpatched security vulnerability.” Those words sent shockwaves through me. With the clock relentlessly ticking and my blog’s security hanging in the balance, I launched into a frantic search for a replacement (see A reaction plugin 3: emergency). Yet my efforts in 2025 were as frustrating as they had been in 2020. If anything, they were even worse. The scarcity of reaction plugins had only deepened, and finding a suitable replacement felt like chasing an impossible dream.
And yet, after countless hours of frustration and dead ends, I stumbled upon a glimmer of hope: Rating Widget: Post Rating, 5 Star Rating, Reviews, Thumbs Up & Down, Reaction (external link) by TotalSuite. It’s a reaction plugin centered around emojis, allowing users to express their feedback through a range of pre-designed options. While it doesn’t tick all the boxes—most notably, it lacks the option to use customizable text buttons—it does offer the ability to upload custom images. Admittedly, it’s not the perfect match I was hoping for, but it’s something I can work with. In a landscape where viable options are nearly extinct, finding this plugin felt like a small victory 1, and one I’m determined to make the most of.
Rating Widget by TotalSuite
Important note: In my search to uncover more about Rating Widget by TotalSuite, I was struck by the absence of detailed, independent reviews or articles focusing on this plugin. Beyond its listing on the WordPress repository and the information available on the TotalSuite website, there’s a surprising lack of third-party analysis or in-depth commentary. For a plugin that has been around for five years and maintains a consistent 5-star rating, this absence is unusual and worth noting 2. Anyway, here is what convinced me…
Boost your WordPress site’s rankings with TotalRating, the ultimate testimonial plugin featuring star rating capabilities.TotalSuite
Rating Widget, developed by TotalSuite 3, is a versatile WordPress plugin designed to enhance user engagement through various rating and feedback mechanisms. While its primary focus is on ratings—such as star ratings and thumbs up/down— it is also supposed to include a reaction feature. At least, that’s what the name suggests, right? This is why I considered it in my search for a plugin that enables quick feedback reactions.
Now, the reaction feature allows users to express their opinions using emojis, offering a lightweight and visually engaging way to capture feedback. Although it doesn’t provide customizable text buttons, the plugin compensates by allowing users to upload their own images, offering some degree of personalization. Additionally, the plugin supports custom CSS, enabling users to further tailor the appearance of their rating widgets to align with their site’s branding and design.
Customize Interface Text: Personalize buttons, validation messages, and more.
Beyond its reaction capabilities, the plugin boasts a range of features that make it a robust tool for website owners. It supports responsive design, ensuring that widgets look great on any device, and offers an intuitive interface for managing and analyzing feedback. In their FAQ, they claim Yes, TotalRating includes a comprehensive analytics dashboard that provides valuable insights about the ratings and reviews.
More—or should I say, less—on that later. Users can also export data in various formats, such as CSV and JSON, making it easier to derive actionable insights.
TotalRating provides customization options for the appearance of its rating widget. You can customize the colors, styles, and layout of the widget to align with your website’s design and branding. This ensures a seamless integration of TotalRating’s rating widget into your WordPress website.TotalSuite
While Rating Widget may not be a perfect match for those seeking a dedicated reaction plugin, its combination of features and customization options makes it a strong contender. For anyone willing to work within its framework, it offers a reliable and adaptable solution for integrating reactions into their WordPress site.
Installing and setting up Rating Widget
Installing, again: as if the first time didn’t happen
Installing the Rating Widget plugin began with a straightforward search for “reaction” in the WordPress plugin repository directly within my WordPress dashboard. After locating the plugin, I clicked Install Now and expected to see it listed as “Rating Widget.” To my surprise, it appeared under the name “TotalRating Pro“—a title I had previously encountered on CodeCanyon. Would I need to pay the $79 fee listed there to fully unlock its features? The potential overlap between the free version from the WordPress repository and the premium offering on CodeCanyon left me wondering 4. However, for now, I decided to proceed with the activation and explore what the free version had to offer before worrying about any additional costs.
Upon activation, the plugin—listed under “TotalRating“—appeared in the WordPress dashboard below the Comments section. Surprisingly, there was no immediate prompt or setup guide upon installation or activation. This wasn’t entirely unexpected, actually, as I’d tested the plugin before. However, during my earlier trial, I skipped through the setup hastily, rejecting all the initial questions and leaving the process incomplete. This time, I aimed for a clean, thorough install. Sure enough, when I accessed the plugin, it remembered my previous attempts. The plugin had retained settings from my earlier install.
Uninstalling (or deleting) doesn’t always mean a complete removal of the plugin—settings and data often linger in the database even after the plugin files are deleted. To ensure no remnants were left behind, one should remove any leftover tables or rows from the database. Wanting a clean reinstall, I decided to tackle the cleanup manually. While tools like Advanced Database Cleaner are designed for this task, the idea of installing a plugin solely to remove another plugin didn’t sit well with me. Instead, I delved directly into my site files and database to investigate.
In the /wp-content/plugins/ directory, I found the “totalrating” folder still intact prior to deletion. Similarly, in the database (accessed via phpMyAdmin), there were two tables associated with TotalRating (one empty and one with my reaction widget settings). Deleting the TotalRating plugin through the WordPress dashboard successfully removed the “totalrating” folder from the file directory—almost like magic, disappearing live as I watched. However, the database didn’t undergo the same transformation; the associated tables remained, serving as a reminder that plugins don’t always clean up after themselves 5.
Before hastily deleting the two TotalRating tables, I took a more methodical approach to ensure no remnants were left behind. Using the Search tab in phpMyAdmin, I input “totalrating” and scanned through all the tables in my database. The search revealed six matches in the wp_options table. Among them, three rows clearly belonged to the plugin, bearing “totalrating” in their option_name. Another was labeled “marketing,” which surprisingly contained my reasoning for uninstalling the plugin. The remaining two were related to the uninstall-plugins and recently-activated plugins list. I deleted the first four matches—leaving the last two untouched. Before proceeding, however, I took the crucial step of backing up my database (external link)—a habit I highly recommend to anyone working on their site.
If you found and removed everything successfully then you should find that when you reinstall the plugin, all it’s settings start from scratch again.Tim Malone
Interestingly, I also found remnants of a plugin I tested in my previous post—the troublesome Katorymnd Reaction Process Plugin—still lingering in the database. This discovery might mean I’ll need to use a dedicated database cleanup plugin after all. Stay tuned.
When I first installed the plugin, a welcome screen appeared upon clicking “TotalRating” in the left-hand menu of my WordPress dashboard. This time around, seeing the same greeting screen again after the fresh install marked a small but satisfying victory—it confirmed that the database cleanup had worked as intended. Amusingly, I noticed a small “X” in the top-right corner, which meant I could have skipped the setup entirely during my initial install.

Clicking Continue brought me to the next screen titled “Get Started.” This window offered various materials to help users learn how to use the plugin effectively, including “How to create a widget”, “How to integrate a widget”, and “How to customize appearance.” Since I had already gone through these resources during my first install, I opted to skip them this time and proceeded immediately by clicking Continue.
The next window, still labeled “Get Started” (though “Let’s Be Friends” might have been the correct heading), asked for three types of information: my email address, whether I identified as a developer, webmaster, or other, and my intended use for TotalRating—be it Research, Marketing, Education, or something else. These were the questions I had skipped the first time around. This time, I was ready to cooperate—but only to a point. While I agreed to share an email address, I wasn’t keen on using my real one. Instead, I created an alias (see From Skiff Mail to Zoho Mail). For the other settings, I left them as “Other,” though I briefly hesitated to classify myself as a webmaster.
After clicking Continue, I arrived at the final screen, aptly titled “Bravo! You did it!” Here, I was invited to opt in for anonymous usage sharing, sign up for TotalSuite.net, and subscribe to their newsletter. However, I chose not to enable any of these options and simply clicked Finish to wrap up the setup process.
With the setup complete, I found myself back in the plugin dashboard, ready to start fresh and create my reaction widget from scratch. The real work was about to begin.
Creating my reaction widget (for real this time)
Using the wizard
Following the steps outlined in their How to create a widget (external link) documentation, I launched the wizard once more. As the screenshot below illustrates, the wizard’s interface closely mirrors the plugin’s settings screen. It guides users through three key steps that establish the main functionalities of the widget while noting that further customization can be performed post-creation.

In the initial step, “Basics”, I assigned a name to the widget—primarily for administrative convenience, allowing easy identification and management. For this fresh attempt, I selected the “Empty” style; I chose the “Faces” option during my first attempt. For the target entities, I opted for “Post” instead of “Page,” ensuring the widget would apply exclusively to individual blog posts. Once these preferences were set, I clicked Continue to proceed.
The second step in the wizard, “Look & Feel,” presented three customizable settings to align the widget’s design with my website:
- Color Palette: A choice between a light or dark palette, depending on the website’s overall design aesthetic.
- Spacing: An option to adjust the spacing, allowing for seamless integration with the site’s layout.
- Emplacement: Control over the widget’s position, with the ability to place it either underneath the content or above it.
For this setup, I decided to stick with the defaults: a light palette, normal spacing, and placement after the content. With these settings confirmed, I clicked Continue to proceed.
The final step, “Behaviors,” allowed for the customization of two features: Results Visibility and Confirmation. I opted to activate the Results Visibility feature, which determines who can view the rating results. To maintain consistency with my previous plugin setup, I selected “Hide for non-voters,” the other choice being “Hide for all.” I chose not to enable the Confirmation feature—a precautionary feature designed to prevent accidental ratings—preferring a simpler user experience.
With this configuration complete, I clicked Finish to finalize the wizard and complete the widget creation process. I was redirected to the widget editor for further configuration.
Further configurations
Starting with the first tab, “General”, I reviewed the following options: the widget’s name, a title field, and a description field. I left the widget name unchanged and decided to skip the title field altogether. Instead, I opted to use the description field for my message: “What do you think?” This choice was deliberate, as including a title would have resulted in it being displayed as an H4 heading 6.
Next, I navigated to the “Attributes” tab, where I realized I could have selected “Faces” earlier in the process, as it was now a required choice. By default, the plugin provided a label of “Happiness,” which I promptly removed to avoid it being displayed as an H4 heading—another nod to maintaining proper logical heading structure. The default setup included four emojis, which the plugin refers to as “points.” 7 While I had the option to add more, I chose to stick with these four, as they perfectly matched my reaction buttons: Like, Agree, Disagree, and Thank You. To ensure consistency, I customized both the default text and the emojis. While I could upload custom images instead, that’s a tale for another post.
Unfortunately, the plugin doesn’t allow for text-only options, without emojis.
Lastly, I decided not to enable the Require Comment feature, which would have allowed voters to add a comment alongside their reaction. For now, I prefer to keep things straightforward.
In the “Entities” tab, there was no need for adjustments. The setting for “Post,” selected earlier in the wizard, remained intact. Additionally, the auto-integrate feature was already activated by default. With everything as it should be, there was nothing left to configure here (at least for my needs).
The “Limitations” tab required a bit more consideration. By default, the plugin allowed for only one rating per session, but I decided to increase this to up to 7 ratings per session—after all, who knows, some readers might be inspired to engage with multiple posts. At the same time, I kept the restriction to just one rating per entity, which was already set as the default. I also left the timeout period unchanged at 1 hour.
When it came to choosing the method for limiting ratings, I selected IP over cookies or authenticated users. Cookies? Fun to crumble in your hand, but less so when they’re digital and leave crumbs in your browser! For added privacy, I enabled the option to “Enhance privacy by storing IP addresses as hashes in the database,” ensuring that privacy remains a priority for my readers. For info, this setting was tucked away in the Options section on the left.
As I delved into the Options section to enable privacy enhancements, I stumbled upon a feature tucked under Options > General: “Wipe all data including widgets, ratings, and options on uninstall.” Oh, the irony! This plugin actually includes a built-in cleanup feature. If only I had known earlier, I could have spared myself the nerve-wracking journey into the depths of my database.
The final tab, “Behaviours”—spelled in British English, no less—was already configured for me, courtesy of the wizard. While there were additional options available, such as “Allow the user to change their rating” or “Allow the user to revoke their rating,” I chose to keep things as they were and not enable these features. Often, simplicity is the best approach.
Transferring reactions, one vote at a time
Instead, I turned my attention to an essential task: voting on some of my existing posts to manually transfer their reactions from the previous plugin to this new one. It wasn’t long before I hit the limitations I had set earlier, which forced me to momentarily disable them to complete the process. As I clicked through post after post, it struck me how much easier this would have been with an import feature! Without such a convenience, this task ended up consuming far more time and energy than anticipated.
Before parting ways with my previous plugin, I took one last glance at its stats. No new votes had come in—a small relief, as I was already weary from updating the new plugin. With a mix of emotions, I deactivated the Reaction Buttons plugin by Jakob Lenfers. While I felt a sense of relief in addressing the potential security risks, there was also a pang of regret. This plugin had served its purpose well, and I knew I’d miss it in some ways. But it was time to move on.
With a deep breath, I hit Delete. Done.
To be continued…
1 Fate can be funny sometimes. Rating Widget was first released on May 4, 2020—a mere two months after my second plugin quest. The silver lining, however, is that with version 1.8.5, the plugin appears relatively stable, standing strong for the past five years. Talk about a late but lasting arrival! ^
2 Now, this scarcity of independent reviews doesn’t necessarily reflect on the plugin’s quality but does present a challenge for anyone seeking outside perspectives before committing to it. It leaves users, like myself, to rely primarily on the information provided by its creators and the limited feedback found on its repository page. In a way, it adds a layer of risk to the decision, as there’s no broader community discussion to validate its merits or shortcomings. ^
3 TotalSuite, the company behind this plugin, specializes in creating WordPress tools that help boost user interaction and gather valuable data. Their products, like TotalPoll and TotalSurvey, are built to be both easy to use and highly adaptable. TotalSuite is dedicated to developing tools that balance powerful features with simplicity, tackling common frustrations users often face with plugins. ^
4 Bringing me back to the idea of “more, or should I say, less”, it’s worth noting that this plugin operates on a freemium model, meaning some features are free to use, while many others are locked behind the Pro version. For instance, access to the “Workflow” and “Insights” tabs, all “advanced” settings, and extra functionalities like the floating widget are reserved for Pro users. Ironically, the company boldly claims on its website: Use any feature without usage restrictions, and we won’t do that, never.
^
5 Although most uninstalled plugins will leave a mess tables and rows in your database, the reasons for developers not to have self-cleanup options when you uninstall and delete a plugin are numerous. Importantly, not all are just about being careless. One of the main reasons indeed is to retain your settings. This means that you can reinstall the plugin at a later time and all your data will still be there. ^
6 Readers of this blog might recall that my previous textbox setup lacked logical heading structure, and adhering to accessibility standards has become a key focus. ^
7 At its core, this plugin functions as a rating tool rather than a reaction plugin. While it features emojis to convey different reactions, these serve as a scoring system rather than counting individual votes. The emoji furthest to the left is assigned a value of +1, the next one to its right is +2, and so on, with the fourth emoji on the right carrying a value of +4. Instead of tallying how many users selected each specific emoji, the plugin calculates a cumulative score for the post based on the values of the selected emojis. This approach emphasizes aggregated ratings over detailed reaction analytics, which might be an important distinction depending on your intended use. ^

