# Verified Reviews for WooCommerce — Documentation

> DataFirefly Reviews (dfreviews) turns the native WooCommerce review system into a social-proof machine: automatic post-purchase review requests, Verified purchase badge, customer photos, helpful votes, AI review summary on the product…

- Page: <https://www.datafirefly.com/en/documentation/dfreviews/>
- Language: en
- Last updated: 2026-07-16
- Other languages: [fr](https://www.datafirefly.com/documentation/dfreviews/index.md), [es](https://www.datafirefly.com/es/documentation/dfreviews/index.md), [de](https://www.datafirefly.com/de/documentation/dfreviews/index.md), [it](https://www.datafirefly.com/it/documentation/dfreviews/index.md), [pl](https://www.datafirefly.com/pl/documentation/dfreviews/index.md), [nl](https://www.datafirefly.com/nl/documentation/dfreviews/index.md), [pt](https://www.datafirefly.com/pt/documentation/dfreviews/index.md)
- Index: <https://www.datafirefly.com/en/documentation/llms.txt>

DataFirefly Reviews (dfreviews) turns the native WooCommerce review system into a social-proof machine: automatic post-purchase review requests, Verified purchase badge, customer photos, helpful votes, AI review summary on the product page, AI auto-reply to reviews, reward coupon and Schema.org rich snippets. This documentation covers installation, full configuration and troubleshooting.

## Installation

1. In your WordPress admin, open **Plugins → Add New → Upload Plugin**.
2. Select `dfreviews-1.0.0.zip`, click **Install Now** then **Activate**.
3. A new **WooCommerce → DF Reviews** submenu appears: this is the plugin's control center.

The plugin builds on native WooCommerce reviews: your existing reviews are kept and immediately usable. No migration is required.

Requirements: WooCommerce 8 or 9, WordPress 6.0+, PHP 8.0 to 8.3. The plugin is HPOS compatible (High-Performance Order Storage) and runs without jQuery or Composer.

## OpenAI key configuration

The AI summary and auto-reply use your own OpenAI API key:

1. Create a key at [platform.openai.com](https://platform.openai.com/api-keys).
2. Paste it in **WooCommerce → DF Reviews → Settings**, **OpenAI** section.
3. The default model is `gpt-4o-mini` — cheapest, recommended. A summary or reply typically costs well under one cent.

Without an OpenAI key, every other feature (review requests, photos, votes, coupons, rich snippets) keeps working fully. The **AI tools** tab shows the AI configuration status.

## Automatic review requests

**Review requests** section of the settings:

- **Trigger order status**: the request is queued when an order reaches this status (default _Completed_).
- **Send delay**: days to wait after the trigger status (default: 3 days).
- **Reminder**: a single reminder email goes out if no review was posted (default: 5 days after the first email).

Every email contains a personal tokened review link: a review posted through it automatically receives the **Verified purchase** badge. Emails are sent in batches of 50 on each cron run. The **Request queue** tab lists the last 100 requests with their status (pending, sent, reminded, completed, failed, unsubscribed) and offers a manual processing button.

Every email includes an unsubscribe link. Unsubscribed addresses are stored as SHA-256 hashes and never receive another request.

## AI review summary

As soon as a product reaches the minimum published review count (default: 3), the cron generates a block shown at the top of the product page reviews tab: **strengths**, **points to note** and **synthesis**.

- The summary is cached per product **and per language**: with Polylang or WPML, each language version shows a summary in its own language.
- It is regenerated automatically when new reviews are published (invalidation by fingerprint of the analyzed reviews).
- The **Max reviews analyzed** setting limits how many reviews are sent to the model.

The **AI tools** tab lists generated summaries with language and date.

## AI auto-reply to reviews

Every published review can receive an AI-generated merchant response, written **in the language of the review**. Key settings:

- **Publication mode**: _Draft_ (recommended at first — each reply waits for your approval in the Comments screen) or _Publish immediately_.
- **Tone**: warm, professional or concise.
- **Signature name**: shown as the reply author (empty = site name).
- **Reply to ratings from**: 1 to reply to every review — recommended, since negative reviews benefit most from a response.

Built-in guardrails: for ratings of 3/5 or below, the reply apologizes and redirects to support, never promising a refund. Replies are capped at roughly 70 words, display with the **Official response** badge, and are excluded from rating averages and rich snippets.

For existing or imported reviews: use the **Generate AI reply** row action in the WordPress comments list, or the batch catch-up processing run by the cron.

## Photos, votes and reward coupon

- **Customer photos**: customers attach up to 3 photos (configurable, max 10) to their review — jpg, png, webp, gif, 5 MB max, displayed with a lightbox.
- **Helpful votes**: "Was this review helpful?" buttons with duplicate protection per account and per hashed IP. Never shown on merchant replies.
- **Reward coupon**: on review publication, the customer receives a percentage coupon (default: 10%, 30 days), unique, single-use, restricted to their email. Anti-farming: one reward per email and per product.

## Form and display

- **Review title field**, optional or required.
- **Minimum review length** in characters (default: 10).
- **Rating distribution block** (5★ to 1★ bars) above the review list.
- **Star color** customizable (hex, default #e7a11a).

## Schema.org rich snippets

The plugin keeps WooCommerce's native AggregateRating and Review markup while sanitizing it: merchant replies are excluded from the markup and averages, keeping your Google stars accurate. The option can be disabled in the settings, which then strips all review markup.

## Cron: making delivery reliable

Processing (requests, reminders, AI summaries, catch-up replies) runs hourly via WP-Cron. Since WP-Cron only fires on site visits, set up a real server cron for reliable delivery:

1. Copy the **tokened cron URL** shown in **Settings → Cron**.
2. Add it to your host's cron (or crontab), every 15 to 60 minutes, e.g. with `curl -s "URL" > /dev/null`.

A concurrency lock prevents two simultaneous runs. The **Run processing now** button in the Request queue tab triggers a manual run at any time.

## CSV import and export

**Import / Export** tab:

- **Export**: all product reviews with rating, title, verified flag and dates.
- **Import**: CSV with a header row and columns `product_id` or `sku`, `author`, `email`, `rating`, `title`, `content`, `date` (Y-m-d H:i:s, optional), `verified` (1/0, optional). Rating statistics are recalculated automatically after import.

## Customer account

A **My reviews** tab is added to the customer account (My Account): each customer finds their reviews with moderation status, stars and verified badge. If the tab returns a 404 after activation, re-save permalinks via **Settings → Permalinks → Save**.

## GDPR and data

- Unsubscribe link in every request email; unsubscribed addresses stored as SHA-256 hashes, never in plain text.
- Voter IP addresses hashed with the WordPress salt.
- Only outbound call: the OpenAI API you control, and only if a key is configured.
- Uninstalling removes the plugin's tables and settings but **keeps all reviews** (native WooCommerce reviews).

## Troubleshooting

- **Requests are not going out**: check the feature is enabled, orders actually reach the trigger status, and the cron is running (last run shown in AI tools). Set up the server cron URL.
- **No AI summary**: OpenAI key configured? Minimum published review count reached? The summary is generated on the cron run, not instantly.
- **No AI reply**: check the mode (in draft mode the reply waits in Comments → Pending), the configured minimum rating, and the API key.
- **Emails not received**: the plugin sends through the WooCommerce mailer — test your global email setup (an SMTP plugin is recommended).
