PHPackages                             lindemannrock/craft-formie-rating-field - 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. lindemannrock/craft-formie-rating-field

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

lindemannrock/craft-formie-rating-field
=======================================

Rating field for Formie - Provides star rating, emoji rating, and numeric rating field types for Craft CMS Formie plugin

3.15.1(1mo ago)0151proprietaryPHPPHP ^8.2CI passing

Since Sep 15Pushed 1mo ago1 watchersCompare

[ Source](https://github.com/LindemannRock/craft-formie-rating-field)[ Packagist](https://packagist.org/packages/lindemannrock/craft-formie-rating-field)[ RSS](/packages/lindemannrock-craft-formie-rating-field/feed)WikiDiscussions main Synced 1mo ago

READMEChangelog (10)Dependencies (15)Versions (48)Used By (0)

Formie Rating Field Plugin
==========================

[](#formie-rating-field-plugin)

[![Latest Version](https://camo.githubusercontent.com/29cc38d31f3c7929d592cab49bb958920d0e3f4b6b6ad7c1c0eb1bed0d0155b5/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f6c696e64656d616e6e726f636b2f63726166742d666f726d69652d726174696e672d6669656c642e737667)](https://packagist.org/packages/lindemannrock/craft-formie-rating-field)[![Craft CMS](https://camo.githubusercontent.com/c176c7ad994b4d577c758871323311a223477bd0cd427c40a8472fd0cad04992/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4372616674253230434d532d352e302b2d6f72616e67652e737667)](https://craftcms.com/)[![Formie](https://camo.githubusercontent.com/29b31abd3a720b332edc5b3ffe9c13a5e8e17fdd133ebf676003713d455f0727/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f466f726d69652d332e302b2d707572706c652e737667)](https://verbb.io/craft-plugins/formie)[![PHP](https://camo.githubusercontent.com/5fe05c705bf034839bda7651781e4d0a9d42f4a840478ca5e343873a0361bb89/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f5048502d382e322b2d626c75652e737667)](https://php.net/)[![License](https://camo.githubusercontent.com/63193c44dad9017ccef6eea642808b1ca00758b0ce87a4cbb388d0939847a032/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f6c2f6c696e64656d616e6e726f636b2f63726166742d666f726d69652d726174696e672d6669656c642e737667)](LICENSE)

A Craft CMS plugin that provides advanced rating field types for Verbb's Formie form builder, including star, emoji, and NPS (Net Promoter Score) rating types.

License
-------

[](#license)

This is a commercial plugin licensed under the [Craft License](https://craftcms.github.io/license/). It will be available on the [Craft Plugin Store](https://plugins.craftcms.com) soon. See [LICENSE.md](LICENSE.md) for details.

⚠️ Pre-Release
--------------

[](#️-pre-release)

This plugin is in active development and not yet available on the Craft Plugin Store. Features and APIs may change before the initial public release.

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

[](#requirements)

- Craft CMS 5.0 or greater
- PHP 8.2 or greater
- Formie 3.0 or greater

Features
--------

[](#features)

### Three Rating Types

[](#three-rating-types)

- **Star Rating**: Classic star ratings with optional half-star support
- **Emoji Rating**: Expressive emotion faces (😭 😢 😕 😐 😊 😍 🤩 🥰 😎 🤗 🥳) - supports 0-10 scale
- **NPS Rating**: Net Promoter Score numeric boxes (0-10 scale)

### Customizable Settings

[](#customizable-settings)

- **Size Options**: Small, medium, large, extra large
- **Flexible Range**: Configurable min/max values
- **Half Ratings**: Enable half-star selections (star type only)
- **Single Emoji Selection**: Highlight only the selected emoji instead of cumulative (emoji type only)
- **Custom Labels**: Define text labels for each rating value that display beneath selected emoji
- **Endpoint Labels**: Add descriptive labels at scale endpoints (e.g., "Poor" / "Excellent")
- **Emoji Render Modes**: Choose between system emojis, Noto Color Emoji (detailed), or Noto Emoji (simple)
- **Plugin Settings**: Configure defaults for all new rating fields

### Seamless Integration

[](#seamless-integration)

- Native Formie field with full validation support
- GraphQL support for headless implementations
- RTL support for Arabic sites
- Backward compatible with existing forms

### Statistics &amp; Analytics

[](#statistics--analytics)

- **Comprehensive Analytics Dashboard**: View rating statistics for all forms
- **Smart Grouping**: Group ratings by product code, name, category, or any form field
- **Type-Aware Calculations**: Automatic NPS scoring, star/emoji averages, and distributions
- **Performance Indicators**: Scale-aware insights (Excellent/Good/Fair/Poor) that adapt to any min/max range
- **Date Range Filtering**: Analyze trends across today, yesterday, last 7/30/90 days, or all time
- **CSV Export**: Export filtered data with grouping for external analysis
- **File-Based Caching**: Fast performance with automatic cache invalidation on new submissions
- **CLI Cache Management**: Clear cache via command line tools

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

[](#installation)

### Via Composer

[](#via-composer)

```
cd /path/to/project
```

```
composer require lindemannrock/craft-formie-rating-field
```

```
./craft plugin/install formie-rating-field
```

### Using DDEV

[](#using-ddev)

```
cd /path/to/project
```

```
ddev composer require lindemannrock/craft-formie-rating-field
```

```
ddev craft plugin/install formie-rating-field
```

### Via Control Panel

[](#via-control-panel)

In the Control Panel, go to Settings → Plugins and click "Install" for Formie Rating Field.

Configuration
-------------

[](#configuration)

### Plugin Settings

[](#plugin-settings)

Navigate to **Settings → Plugins → Formie Rating Field** to configure default values for new rating fields:

- **Default Rating Type**: Star, emoji, or NPS
- **Default Size**: Small to extra large
- **Default Range**: Min/max rating values
- **Default Labels**: Start/end label text
- **Default Options**: Half ratings, show labels, etc.

### Config File

[](#config-file)

Create a `config/formie-rating-field.php` file to override default settings:

```
cp vendor/lindemannrock/craft-formie-rating-field/src/config.php config/formie-rating-field.php
```

Example configuration:

```
// config/formie-rating-field.php
return [
    'defaultRatingType' => 'emoji',
    'defaultRatingSize' => 'large',
    'defaultMinRating' => 0,
    'defaultMaxRating' => 10,
    'defaultAllowHalfRatings' => false,
    'defaultSingleEmojiSelection' => true,
    'defaultShowEndpointLabels' => true,
    'defaultStartLabel' => 'Not Likely',
    'defaultEndLabel' => 'Very Likely',
    'defaultEmojiRenderMode' => 'noto-simple',  // 'system', 'noto-color', 'noto-simple'
    'itemsPerPage' => 50,  // Number of items per page in statistics lists
];
```

See [Configuration Documentation](docs/CONFIGURATION.md) for all available options.

Statistics &amp; Analytics
--------------------------

[](#statistics--analytics-1)

The plugin includes a comprehensive analytics dashboard for analyzing rating field submissions.

### Accessing Statistics

[](#accessing-statistics)

Navigate to the plugin's CP section:

1. **Forms Rating** → **Statistics** in the main navigation
2. Select a form to view detailed statistics
3. Use filters to refine your analysis

### Key Features

[](#key-features)

**Smart Grouping**

- Group ratings by any field in your form (product code, category, hidden fields, etc.)
- View performance breakdown for each group
- Identify top performers and items needing attention

**Date Range Filtering**

- Filter by: Today, Yesterday, Last 7/30/90 days, or All time
- Analyze trends over specific periods
- Compare performance across time ranges

**Performance Insights**

- Scale-aware indicators (Excellent/Good/Fair/Poor) that adapt to any rating range
- Reliability warnings for products with insufficient reviews (&lt;5)
- Visual progress bars showing relative performance
- NPS score calculation with promoter/passive/detractor breakdown

**Data Export**

- Export filtered data to CSV
- Grouped exports show aggregated stats per group
- Non-grouped exports show raw submission data
- Includes average and median values for comprehensive analysis

### Analytics Views

[](#analytics-views)

**When Not Grouped (Default)**

- Overall statistics across all submissions
- Distribution charts showing rating patterns
- Summary metrics (average, median, mode)

**When Grouped by Field**

- Summary cards showing total groups, overall average, top/bottom performers
- Detailed table with performance indicators for each group
- Sortable columns (Product Name, Reviews, Average, Performance)
- Client-side search with instant filtering
- Click any group to drill down to individual submissions

**Drill-Down View**

- Click any product/group to see individual submissions
- Full submission data displayed (all form fields)
- Search, sort, and paginate through submissions
- Export submissions for specific group to CSV
- Direct links to view full submissions in Formie

### CLI Commands

[](#cli-commands)

Manage statistics cache via command line:

```
# Clear all statistics cache
php craft formie-rating-field/cache/clear

# Clear cache for specific form
php craft formie-rating-field/cache/clear-form --formId=34

# View cache information
php craft formie-rating-field/cache/info
```

Or with DDEV:

```
ddev craft formie-rating-field/cache/clear
ddev craft formie-rating-field/cache/info
```

### Cache Behavior

[](#cache-behavior)

- **Location**: `storage/runtime/formie-rating-field/cache/statistics/`
- **Invalidation**: Automatic on submission save/delete
- **Manual Refresh**: Use CLI commands or "Refresh" button in CP
- **No TTL**: Cache persists until invalidated (optimal performance)

Usage
-----

[](#usage)

### Adding a Rating Field

[](#adding-a-rating-field)

1. Open your form in the Formie form builder
2. Click "Add Field" and select "Rating" from the field types
3. Configure the field settings:
    - **Rating Type**: Choose star, emoji, or NPS display
    - **Size**: Control the visual size of rating elements
    - **Rating Range**: Set minimum and maximum values
    - **Allow Half Ratings**: Enable for star type (stars only)
    - **Single Emoji Selection**: Enable for single emoji highlighting (emoji only)
    - **Custom Labels**: Define labels for each value (shows when using single emoji selection)
    - **Endpoint Labels**: Add descriptive text at scale ends

### Using Single Emoji Selection with Custom Labels

[](#using-single-emoji-selection-with-custom-labels)

When **Single Emoji Selection** is enabled for emoji ratings:

1. Only the clicked emoji is highlighted (not cumulative)
2. A custom label displays beneath the selected emoji
3. Define labels in the **Custom Labels** table that appears

**Example:** For a 1-5 rating scale:

ValueLabel1Terrible2Bad3Okay4Good5Excellent**Important:**

- Define a label for **each value** in your rating range (e.g., if min=0 and max=10, define labels for values 0-10)
- Labels display only when an emoji is selected
- If no custom label is defined for a value, the numeric value displays instead

### Templating

[](#templating)

In your templates, rating fields are rendered automatically by Formie:

```
{# Render the entire form #}
{{ craft.formie.renderForm('contactForm') }}

{# Or render a specific field #}
{% set form = craft.formie.forms.handle('contactForm').one() %}
{{ craft.formie.renderField(form, 'ratingField') }}
```

### GraphQL Support

[](#graphql-support)

Query rating field data via GraphQL:

```
query {
  formieSubmissions(form: "contactForm") {
    ... on contactForm_Submission {
      ratingField
    }
  }
}
```

Field Settings Reference
------------------------

[](#field-settings-reference)

SettingDescriptionOptions**Rating Type**Visual style of the rating`star`, `emoji`, `nps`**Emoji Render Mode**How emojis are displayed`system`, `noto-color`, `noto-simple` (emoji only)**Size**Visual size of rating elements`small`, `medium`, `large`, `xlarge`**Min Value**Minimum rating value0-1 (NPS is always 0)**Max Value**Maximum rating value3-10 (NPS is always 10)**Allow Half Ratings**Enable half-star selectionstrue/false (star only)**Single Emoji Selection**Highlight only selected emoji (not cumulative)true/false (emoji only)**Custom Labels**Define text labels for each rating valueTable with Value/Label pairs**Show Endpoint Labels**Display labels at scale endstrue/false**Start Label**Text for lowest valueAny text**End Label**Text for highest valueAny text**Show Selected Label**Display selected rating as texttrue/false### Google Review Integration

[](#google-review-integration)

Automatically prompt high-rating customers to leave Google Reviews:

SettingDescription**Enable Google Review Prompt**Show Google Review link for high ratings**Rating Threshold**Minimum rating to trigger prompt (e.g., 9 for NPS)**Google Place ID Field**Handle of field containing Place ID**Review URL Template**Customizable URL (supports different regions)**Button Label**Text on review button**Button Alignment**start/center/end**High/Medium/Low Messages**Custom messages per rating tier**How it works:**

- High ratings (≥ threshold): Shows Google Review button
- Medium ratings (threshold - 2): Generic thank you message
- Low ratings (&lt; medium): Improvement message

All messages are translatable through Formie's translation system.

Styling
-------

[](#styling)

For custom CSS styling options and examples, see [CSS Customization Guide](docs/CSS_CUSTOMIZATION.md).

File Structure
--------------

[](#file-structure)

```
plugins/formie-rating-field/
├── docs/
│   ├── CONFIGURATION.md                   # Configuration guide
│   └── CSS_CUSTOMIZATION.md               # CSS customization guide
├── src/
│   ├── console/
│   │   └── controllers/
│   │       └── CacheController.php        # CLI cache management
│   ├── controllers/
│   │   ├── StatisticsController.php       # Statistics & analytics
│   │   └── SettingsController.php         # Settings pages
│   ├── fields/
│   │   └── Rating.php                     # Main field class
│   ├── integrations/
│   │   └── feedme/
│   │       └── fields/
│   │           └── Rating.php             # Feed Me integration
│   ├── models/
│   │   └── Settings.php                   # Plugin settings model
│   ├── services/
│   │   └── StatisticsService.php          # Statistics calculations
│   ├── templates/
│   │   ├── _components/
│   │   │   └── plugin-credit.twig
│   │   ├── _layouts/
│   │   │   └── settings.twig              # Settings layout with sidebar
│   │   ├── fields/
│   │   │   └── rating/
│   │   │       ├── input.twig             # Field input template
│   │   │       ├── value.twig             # Value display
│   │   │       └── email.twig             # Email template
│   │   ├── settings/
│   │   │   ├── general.twig               # General settings tab
│   │   │   └── interface.twig             # Interface settings tab
│   │   ├── statistics/
│   │   │   ├── index.twig                 # Forms list
│   │   │   └── form.twig                  # Form statistics detail
│   │   ├── settings.twig                  # Settings redirect
│   │   └── index.twig                     # Plugin index redirect
│   ├── twigextensions/
│   │   └── PluginNameExtension.php        # Twig helper (ratingHelper)
│   ├── web/
│   │   └── assets/
│   │       └── field/
│   │           ├── RatingFieldAsset.php
│   │           ├── rating.css
│   │           └── rating.js
│   ├── config.php                         # Config file template
│   ├── icon.svg                           # Plugin icon
│   └── FormieRatingField.php              # Main plugin class
├── CHANGELOG.md
├── LICENSE.md
├── README.md
└── composer.json

```

Support
-------

[](#support)

- **Documentation**:
- **Issues**:
- **Email**:

License
-------

[](#license-1)

This plugin is licensed under the [Craft License](https://craftcms.github.io/license/). See [LICENSE.md](LICENSE.md) for details.

---

Developed by [LindemannRock](https://lindemannrock.com)

Built for use with [Formie](https://verbb.io/craft-plugins/formie) by Verbb

###  Health Score

46

—

FairBetter than 93% of packages

Maintenance92

Actively maintained with recent releases

Popularity13

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity61

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

Recently: every ~17 days

Total

46

Last Release

39d ago

Major Versions

1.4.1 → 3.0.02025-10-20

PHP version history (2 changes)1.0.0PHP ^8.0.2

1.1.0PHP ^8.2

### Community

Maintainers

![](https://www.gravatar.com/avatar/88c830ac26a6d6b575430b14695a81810dc436a5d5be138e5ec28a367a314cae?d=identicon)[bhlindemann](/maintainers/bhlindemann)

---

Top Contributors

[![bhlindemann](https://avatars.githubusercontent.com/u/81223527?v=4)](https://github.com/bhlindemann "bhlindemann (177 commits)")

---

Tags

craft-cmscraft-cms-pluginemoji-ratingform-builderformienpsrating-fieldsstar-ratinguser-feedbackcmsCraftcraftcmscraft-pluginformiestar-ratingrating field

### Embed Badge

![Health badge](/badges/lindemannrock-craft-formie-rating-field/health.svg)

```
[![Health](https://phpackages.com/badges/lindemannrock-craft-formie-rating-field/health.svg)](https://phpackages.com/packages/lindemannrock-craft-formie-rating-field)
```

###  Alternatives

[verbb/formie

The most user-friendly forms plugin for Craft.

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

Create navigation menus for your site.

90683.7k17](/packages/verbb-navigation)[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)[verbb/vizy

A flexible visual editor field for Craft.

4348.6k](/packages/verbb-vizy)[verbb/hyper

A user-friendly links field for Craft.

24130.9k9](/packages/verbb-hyper)

PHPackages © 2026

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