Likes/Dislikes


Overview

After installing the plugin create a new likes field:

Likes Field Creation

Add it to your desired entry type(s) then render it into your templates with one line:

{{ craft.engagement.render(entry.myLikesFieldHandle) }}

***Note*** By default the field settings has the field disabled for all entries. This can either be turned on for all entries or the editors will need to be set up with the ability to turn it on an entry by entry basis.

Demo

Default Widget:
A clean, out-of-the-box Like/Dislike widget with clear thumbs controls. You can customize the text directly in the Craft Admin Panel (including heading and button labels), no code required, and optionally allow editors/user groups to manage those same text settings per entry.

Emoji Icon Variation (Pasted Emoji):
This demo uses Emoji icon mode, with emoji copied from a website or elsewhere and pasted into the Like Emoji and Dislike Emoji fields in Craft. You can also It is a simple no-code way to personalize the widget style in the admin panel, and that same icon/text configuration access can be granted to editors or selected user groups.

Put whatever your heart desires here

Data model and metrics

Use these Likes field properties in Twig to read current counts, behavior settings, icon/text configuration, and the current user’s vote state. You’ll typically access them from your field handle (for example, entry.likesHandle.likeCount) and output what your template needs.

Setting Description
enabledWhether the likes/dislikes widget is enabled for this entry.
idAggregate record ID for this entry/field/site context.
elementIdCraft element ID this likes field belongs to.
fieldIdCraft field ID for this likes field.
siteIdSite ID for this likes/dislikes context.
likeCountTotal number of likes.
dislikeCountTotal number of dislikes.
iconActive icon mode (thumbs, emoji, none, customSvg).
emojiIconLegacy emoji alias (kept for backwards compatibility).
likeEmojiIconEmoji used for the like button in emoji mode.
dislikeEmojiIconEmoji used for the dislike button in emoji mode.
beforeLikeColorBackground/color value used for Like before a like vote is active.
afterLikeColorBackground/color value used for Like when a like vote is active.
beforeDislikeColorBackground/color value used for Dislike before a dislike vote is active.
afterDislikeColorBackground/color value used for Dislike when a dislike vote is active.
likeCustomSvgSVG markup used for the like icon in customSvg mode.
dislikeCustomSvgSVG markup used for the dislike icon in customSvg mode.
allowGuestInteractionsWhether guests can submit like/dislike interactions.
allowVoteChangeWhether users can switch or remove their vote after voting.
headingTextOptional text shown above the likes/dislikes widget.
likeTextOptional label text for the Like button.
dislikeTextOptional label text for the Dislike button.
userVoteCurrent user’s vote state: 1 (like), -1 (dislike), or null (no vote).
totalVotesComputed value: total likes + dislikes.
scoreComputed value: likes minus dislikes.

Field settings and Customization

Likes Widget Preview

The Likes/Dislikes field settings let you control how the widget looks, behaves, and can be customized by editors. At a high level, you configure the visual style (icon mode and state colors), interaction rules (guest access and whether users can change votes), display text, and optional per-entry override permissions for editorial teams.

Widget Preview

The Widget Preview shows a live “Before Interaction” and “After Interaction” example so you can quickly validate icon style, color states, and text settings before saving. It is a visual check only and does not cast real likes/dislikes.

Icon Appearance

Use Icon Appearance to choose how like/dislike buttons are rendered. Icon Mode supports built-in options (thumbs, emoji, none, and custom SVG). If you select Emoji, set both Like Emoji Icon and Dislike Emoji Icon. If you select Custom SVG, provide SVG markup for both the like and dislike icons. You can also define before/after color states for both buttons.

Likes Icon Appearance

Like/Dislike Behavior

Default Enabled State determines whether new elements start with the widget enabled. Allow Guest Interactions controls whether non-logged-in visitors can like/dislike. Allow Users to Change Their Vote controls whether users can switch vote direction or remove their vote after interacting.

Likes Behavior

Text Overrides

Text Overrides controls optional messaging around the widget. Text Above Widget appears above the control, while Like Button Text and Dislike Button Text define button labels. These fields support tokenized values such as counts and vote state.

Likes Text Overrides

Editor Overrides

Allow Editor Overrides is the master switch for per-entry customization. When enabled, you can grant granular permissions for what editors may change per entry: widget enabled state, preview visibility, icon appearance, icon colors, guest interaction behavior, vote-change behavior, and text override fields. This keeps defaults consistent while allowing controlled flexibility at the content-entry level.

Likes Editor Overrides

 

Template Overrides

Engagement’s Ratings, Likes/Dislikes, and Favorites widgets are fully customizable. For each widget type, you can override the Twig/HTML, CSS, and JavaScript independently, either site-wide or per template/render call, so you can keep a global default while tailoring specific experiences where needed. Full template override details are available here: Template Overrides Documentation.