=== Remoji - Post/Comment Reaction and Enhancement ===
Contributors: Remoji
Tags: comment, emoji, postviews, counter, views
Requires at least: 4.4
Tested up to: 7.0
Stable tag: 2.5
License: GPLv3
License URI: http://www.gnu.org/licenses/gpl.html

Reactive emoji. Allow visitors to add emoji reactions to your posts and comments. Disable comment for pages, posts.

== Description ==

Add the slack style emoji to posts, pages or comments.

= Features: =

* React with emojis to any post or comment.

* Post View counter. Compatible with all cache plugins! Easy to use. Automatically exclude bots.

* Disable comment on any post type (pages, posts, attachments).

* Most Viewed widget. Recent Reacted Emoji Post widget.

* Allow guests reaction or logged-in user reaction only.

* GDPR compliant. With this feature turned on, all logged IPs get obfuscated (md5-hashed).

= Post View =

1. Edit `wp-content/themes/<YOUR THEME>/index.php` or `archive.php`/`single.php`/`post.php`/`page.php`.

2. In the loop `while ( have_posts() ) {` or anywhere you want to show the views, add the following codes: `do_action( 'remoji_postview' );`.


*API*

To show postview in themes/plugins, use `do_action( 'remoji_postview', $the_post_id_to_inquire );`.


*Shortcode [views] available*

Use `[views]` or `[views id="3"]`(To show the views of post ID 3) in your editor.


== Screenshots ==

1. Comment emoji style
2. Remoji Settings
3. Post View counter

== Frequently Asked Questions ==

= The reaction is not added / I see "Error happened" =

Clicking an emoji sends a request to the REST endpoint `/wp-json/remoji/v1/add`. If reactions fail, the most common causes are:

* A security plugin, firewall (WAF) or server rule blocking the WordPress REST API.
* Another plugin overriding REST routes, or the REST API being disabled.
* Aggressive page caching serving a stale nonce to logged-in users (guests are unaffected as of 2.4).

Open your browser console: if the `add` request returns `rest_no_route` (404), the route is being blocked/rewritten before it reaches the plugin — allow the `remoji/v1` REST namespace in your security plugin/firewall.

= How do I place reactions manually instead of auto-appending? =

Turn OFF "Auto-Append To Content" in the settings, then use the shortcode `[remoji]` (or `[remoji id="3"]`) or the PHP hook `do_action( 'remoji_reaction' );` where you want the reaction bar.

= Can I limit which emojis are available, or add my own? =

Use "Limit Emojis" in the settings to restrict the picker to a subset. Developers can add/replace emojis via the `remoji_emoji_list` filter.

== Changelog ==

= 2.5 - Jul 7, 2026 =
* **Bugfix** Emoji picker layout now works with limited emoji sets of any size.
* **Bugfix** Reaction notifications now go to the correct post/comment author.
* **Bugfix** Recent Reacted widget backfills visible entries after hidden/deleted targets are skipped.
* **Security** Password-protected posts/comments no longer render or accept reactions.

= 2.4 - Jul 7, 2026 =
* 🌱 Withdraw your own reaction by clicking the same emoji again.
* 🌱 Optional email notification to the author on new reactions.
* 🌱 Show who reacted (logged-in user names) on hover.
* 🌱 `[remoji]` shortcode + `do_action( 'remoji_reaction' )` hook, with an option to disable auto-appending.
* 🌱 Limit available emojis to a subset, plus a `remoji_emoji_list` filter for custom emojis.
* 🌱 Disable reactions per post type (e.g. pages).
* 🌱 bbPress topics/replies support.
* **Bugfix** No longer renders the reaction bar (and "Error happened") inside excerpts/feeds.
* **Bugfix** Guest reactions now work on cached pages (nonce only sent for logged-in users).
* **Bugfix** Mobile-responsive emoji picker panel.
* **Bugfix** Correct text domain on all strings; clearer reaction error messages.
* **Bugfix** Admin reaction log: fixed pagination edge cases and escaped all output.
* **Security** Server-side validation of reaction targets (published post / approved comment on a public parent), plus post-type and emoji-whitelist enforcement.
* **Security** Client IP now uses REMOTE_ADDR by default and no longer trusts proxy headers unless the `remoji_trust_proxy_headers` filter is enabled — sites behind a CDN/proxy should enable it.

= 2.2 =
* Test up to latest WP.

= 2.1.1 =
* Translation fix. (@alexclassroom)

= 2.1 =
* Bypassed version check to speed up WP v6.

= 2.0 =
* Postview column in Posts list. (@inside83)

= 1.9.1 =
* Test up to WP v5.8.

= 1.9 =
* 🌱 Limit emoji amount per visitor per post.

= 1.8.1 =
* More accurate to detect IP.

= 1.8 =
* WordPress v5.5 REST compatibility.

= 1.7 =
* 🌱 Recent Reacted Emoji Post widget. (@wilcosky)
* 🌱 Most Viewed widget.

= 1.6 =
* 🌱 Disable comments on any post type (posts/pages/attachments).

= 1.5 =
* 🌱 Post view counter.

= 1.4 =
* 🌱 Reaction delete. (@wilcosky)
* 🌱 Guest Reaction Control. (@wilcosky)
* **Bugfix** Fixed repeated reactions issue when GDPR mode is ON.

= 1.3 =
* 🌱 Reaction log.

= 1.2 =
* Options to turn emoji ON/OFF on Post/Page/Comment.

= 1.1 =
* Reactive emoji for posts.

= 1.0 =
* Reactive emoji for comments.
