PHPackages                             mortscode/feedback - 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/feedback

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

mortscode/feedback
==================

A Craft plugin for user reviews and questions

5.0.3.1(1mo ago)0923↓50%MITPHPPHP ^8.0.2

Since May 28Pushed 9mo ago1 watchersCompare

[ Source](https://github.com/mortscode/feedback-plugin)[ Packagist](https://packagist.org/packages/mortscode/feedback)[ RSS](/packages/mortscode-feedback/feed)WikiDiscussions main Synced 1mo ago

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

Feedback plugin for Craft CMS 4.x
=================================

[](#feedback-plugin-for-craft-cms-4x)

A comments and 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/feedback

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

Feedback Overview
-----------------

[](#feedback-overview)

The Feedback Plugin provides 2 types of feedback 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', 'feedback/feedback/save') }}
     {{ hiddenInput('entryId', entry.id) }}
     {{ hiddenInput('feedbackType', 'review') }}
     {{ hiddenInput('token', "", {class: 'js-token-input'}) }}
     {{ feedback is defined and feedback ? errorList(feedback.getErrors('name')) }}

         1
         2
         3
         4
         5

     Submit Review

```

### Questions Form

[](#questions-form)

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

```

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

     Submit Question

```

Configuring Feedback
--------------------

[](#configuring-feedback)

-Insert text here-

Using Feedback
--------------

[](#using-feedback)

### 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() {
                reviewForm.submit();
            });
        });

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

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

```

5. Add the hidden field to your forms:

```

   [...]
   {{ hiddenInput('token', "", {class: 'js-token-input'}) }}
   [...]

```

Feedback Roadmap
----------------

[](#feedback-roadmap)

Some things to do, and ideas for potential features:

- Release it

Brought to you by [Scot Mortimer](mortscode.com)

###  Health Score

45

—

FairBetter than 93% of packages

Maintenance71

Regular maintenance activity

Popularity17

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity69

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 ~41 days

Recently: every ~54 days

Total

44

Last Release

56d ago

Major Versions

1.0.30 → 4.0.202024-03-18

4.0.24 → 5.0.0-RC.12025-07-24

### 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 (112 commits)")

---

Tags

cmsreviewsCraftcraftcmscraft-plugin

###  Code Quality

TestsCodeception

### Embed Badge

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

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

###  Alternatives

[pennebaker/craft-architect

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

72148.5k5](/packages/pennebaker-craft-architect)[doublesecretagency/craft-cpjs

Add custom JavaScript to your Control Panel.

43163.7k](/packages/doublesecretagency-craft-cpjs)[nystudio107/craft-webperf

Webperf helps you build &amp; maintain high quality websites through Real User Measurement of your website's performance

2540.9k1](/packages/nystudio107-craft-webperf)[superbig/craft3-mobiledetect

Use Mobile\_Detect for detecting mobile devices (including tablets)

1953.3k](/packages/superbig-craft3-mobiledetect)[billythekid/conditional-fields

Show or hide fields based on the value of other fields.

138.1k](/packages/billythekid-conditional-fields)[wbrowar/craft-grid

A field that lets you content manage CSS Grid in Craft CMS.

171.1k](/packages/wbrowar-craft-grid)

PHPackages © 2026

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