PHPackages                             mortscode/reviews - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. mortscode/reviews

ActiveCraft-plugin[Utility &amp; Helpers](/categories/utility)

mortscode/reviews
=================

An entry reviews plugin

1.0.11(5y ago)021MITPHP

Since Dec 14Pushed 5y ago1 watchersCompare

[ Source](https://github.com/mortscode/reviews)[ Packagist](https://packagist.org/packages/mortscode/reviews)[ RSS](/packages/mortscode-reviews/feed)WikiDiscussions master Synced 6d ago

READMEChangelog (10)Dependencies (4)Versions (12)Used By (0)

Reviews Plugin
==============

[](#reviews-plugin)

An entry comments &amp; reviews plugin for Craft CMS 3.x

[![Screenshot](resources/img/plugin-logo.png)](resources/img/plugin-logo.png)

Requirements
------------

[](#requirements)

This plugin requires Craft CMS 3.0.0-beta.23 or later.

Installation
------------

[](#installation)

To install the plugin, follow these instructions.

1. Open your terminal and go to your Craft project:

    ```
    cd /path/to/project

    ```
2. Then tell Composer to load the plugin:

    ```
    composer require mortscode/reviews

    ```
3. In the Control Panel, go to Settings → Plugins and click the “Install” button for Reviews.

Reviews Overview
----------------

[](#reviews-overview)

The Reviews plugin provides 2 types of forms for your users: Reviews &amp; Questions. The idea is that sometimes you're looking for an actual review from users, other times, you just want to provide a way for users to ask questions or leave a suggestion. Below you'll find the 2 forms aimed at these 2 types of users.

### Review Form

[](#review-form)

Required Fields:

- Name
- Email

Review-specific Fields:

- Rating

```

    {{ hiddenInput('action', 'reviews/reviews/save') }}
    {{ hiddenInput('entryId', entry.id) }}
    {{ hiddenInput('token', "", {class: 'js-token-input'}) }}
    {{ hiddenInput('reviewType', 'review') }}
    {{ csrfInput() }}

        1
        2
        3
        4
        5

    Submit!

```

### Questions Form

[](#questions-form)

Add the following form to enable users to ask questions (no ratings):

```

    {{ hiddenInput('action', 'reviews/reviews/save') }}
    {{ hiddenInput('entryId', entry.id) }}
    {{ hiddenInput('token', "", {class: 'js-token-input'}) }}
    {{ hiddenInput('reviewType', 'question') }}
    {{ csrfInput() }}

    Submit!

```

Configuring Reviews
-------------------

[](#configuring-reviews)

### Default Status

[](#default-status)

Set the status that your Reviews will start with when they're added.

### Main Column Title

[](#main-column-title)

The heading above the 1st column on the main Reviews page in the CP. The default is "Entry".

### Reviewable Sections

[](#reviewable-sections)

Check the section or sections that will have Reviews

Using Reviews
-------------

[](#using-reviews)

### Available Variables

[](#available-variables)

- name
- email
- rating
- comment
- response

### Templating

[](#templating)

Render reviews in your templates like so:

```
{% set reviews = craft.reviews.getEntryReviews(entry.id) %}

    {% for review in reviews %}

            {{ review.name }}
            {{ review.email }}
            Rating:
                {{ review.rating }}
            {{ review.comment }}
            {% if review.response %}
                {{ review.response }}
            {% endif %}

    {% endfor %}

```

### ReCaptcha

[](#recaptcha)

1. Register your site with Google ReCaptcha [here](https://www.google.com/recaptcha/admin/create).
2. Add your new site key and secret key to the `Settings > Reviews` page in the Craft CP
3. Add the JS script to pages using the Reviews plugin. You can grab the key from the settings page with the `craft.reviews.getRecaptchaKey` helper.

```

```

4. On submit, get the token from ReCaptcha and pass it into the form before the submit takes place.

```

    var reviewForm = document.getElementById('reviews-form');

    reviewForm.addEventListener('submit', handleRecaptcha);

    function handleRecaptcha(e) {
        e.preventDefault();

        grecaptcha.ready(function() {
            grecaptcha.execute('{{ craft.reviews.getRecaptchaKey }}', {action: 'submit'}).then(function(token) {
                tokenizeForm(token);
            }).then(function() {
                // console.log('submit');
                reviewForm.submit();
            });
        });

        function tokenizeForm(token) {
            const tokenInput = document.querySelector('.js-token-input');
            console.log(tokenInput);
            tokenInput.value = token;
        }
    }

    reviewForm.addEventListener('submit', handleRecaptcha, false);

```

Reviews Roadmap
---------------

[](#reviews-roadmap)

Some things to do, and ideas for potential features:

- Release it

Brought to you by [Mortscode](https://github.com/mortscode)

###  Health Score

26

—

LowBetter than 43% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity6

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity60

Established project with proven stability

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~13 days

Recently: every ~7 days

Total

11

Last Release

1851d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/a2a2a32073673e89f5dfe0db298a3b90a93c922b74d70fdce95728d7e0ac5869?d=identicon)[mortscode](/maintainers/mortscode)

---

Top Contributors

[![mortscode](https://avatars.githubusercontent.com/u/3239582?v=4)](https://github.com/mortscode "mortscode (41 commits)")

---

Tags

cmsreviewsCraftcraftcmscraft-plugin

###  Code Quality

TestsCodeception

### Embed Badge

![Health badge](/badges/mortscode-reviews/health.svg)

```
[![Health](https://phpackages.com/badges/mortscode-reviews/health.svg)](https://phpackages.com/packages/mortscode-reviews)
```

###  Alternatives

[verbb/navigation

Create navigation menus for your site.

90683.7k17](/packages/verbb-navigation)[verbb/formie

The most user-friendly forms plugin for Craft.

101372.9k40](/packages/verbb-formie)[verbb/comments

Add comments to your site.

13753.1k](/packages/verbb-comments)[verbb/tablemaker

Create customizable and user-defined table fields.

40168.8k1](/packages/verbb-tablemaker)[supercool/tablemaker

Create customizable and user-defined table fields.

40141.7k](/packages/supercool-tablemaker)[pennebaker/craft-architect

CraftCMS plugin to generate content models from JSON/YAML data.

72148.5k5](/packages/pennebaker-craft-architect)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
