Plugin documentation

Reviews for WooCommerce by WpExperts Hub

Ask for product reviews after every order with stars in the email, remind customers politely, collect Verified Buyer reviews on a private page or from My Account, show them on the product page with photos, filters and helpful votes, and manage everything from one dashboard.

1. Overview

Reviews for WooCommerce by WpExperts Hub asks your customers for product reviews at the right moment, reminds them politely, lets them write a review on a clean private page without an account, publishes it with a Verified Buyer label after you approve it, and shows your reviews on the product page with a rating summary, customer photos, filters and helpful votes.

When an order becomes Completed the plugin emails the billing address a review request with five clickable stars and a button for every product that was bought. Products that still have no review get a reminder 5 days later and a final reminder 7 days after that. Before every email the plugin checks again, so nobody is asked about something they already reviewed, and every email has a one-click Stop review emails link.

Customers with an account also find a Leave a review button on their orders in My Account → Orders and a Your reviews list on every order page. The button opens the same private review page as the email.

On the product page the plain review list becomes a reviews section: the average rating with a bar per star level, a strip of customer photos, filters, sorting, Was this helpful? votes and Show more reviews. You can thank every reviewer with a personal coupon, whatever their rating, tell them when their review is live or when you replied, and get an alert for low ratings.

WooCommerce, Review Requests: statistics cards, average rating, review rate, where reviews come from and the table of review requests
WooCommerce → Review Requests: statistics, insights and one row for every order that is in the review sequence.

How it works

  1. An order is completed. The plugin records the order, lists the products that can be reviewed and schedules the initial email (immediately, or after the delay you set). The sequence starts once per order: going from Completed to another status and back never restarts it.
  2. The emails go out from a background queue. Action Scheduler (part of WooCommerce) runs the jobs, with WP-Cron as a fallback. Each email is claimed with an atomic step, so a repeated status change, a retried job or a double click can never send the same email twice.
  3. The customer writes a review. A star in the email, the button under a product, or the Leave a review button on the order in My Account opens a private page with a star rating, optional title, text and optional photos. The link contains a random token that expires; it shows nothing about the order to anyone without it.
  4. You moderate it. The review is saved as a normal Pending WooCommerce product review. You approve, reject or trash it in the usual place. Approved reviews of a real purchase show a Verified Buyer label, and the customer gets a Review published email (with the thank-you coupon, if you use them).
  5. Reminders stop by themselves. As soon as every product of the order has a review, or the customer unsubscribes, the remaining reminders are cancelled. A reminder only ever lists the products that still wait for a review.
  6. Shoppers see it. The review appears in the reviews section of the product page, with photos, the Verified Buyer label and helpful votes, and counts in the rating summary and in Insights.

At a glance

Automatic sequence

Initial request, a reminder after 5 days and a final reminder 7 days later. All three delays, and an optional delay before the first email, are settings.

Seven native WooCommerce emails

The request, two reminders, Review published, the thank-you coupon, Reply to a review and a Low rating alert to you, all under WooCommerce → Settings → Emails with your logo and the WooCommerce styling.

Stars in the email

Five clickable stars under every product: a click opens the review page with that rating already chosen, so the customer only adds a few words.

Private review page

Responsive, accessible, no account needed, photos optional. Protected by a nonce, a honeypot and rate limits. One review per product and order.

Verified Buyer

Set only when the order is paid, contains the product and has the review's billing email. Clicking an email link alone proves nothing.

Reviews on the product page

Rating summary with a bar per star level, customer photos with a full-screen viewer, filters, sorting, helpful votes and Show more reviews, on phones too.

Thank-you coupons

A personal, single-use coupon for every review, whatever its rating, as Google and consumer-protection rules require. Rewarded reviews are marked on the product page.

One-click unsubscribe

A Stop review emails link and the unsubscribe header Gmail, Yahoo and Outlook show as their own button. Unsubscribed addresses are never asked again.

One dashboard

What needs your attention, four key numbers, a table with the progress of every order's three emails, an order detail screen, an email log, CSV export and maintenance tools.

Manual and bulk

Send, resend, reschedule, cancel or reset one order, or queue a bulk action for many. Works from the Orders screen too, on HPOS and classic storage.

Leave a review in My Account

A button on the customer's orders and a list of their reviews on each order page, added through WooCommerce's own hooks, so it works with any theme.

In your colours

The review page takes your WooCommerce email colour or a colour you pick, works in dark mode and on phones, and you can preview it with sample products.

Insights

Emails and reviews per week, which email brought the reviews, the rating distribution and a sortable table of ratings per product.

Shortcodes and blocks

A reviews slider or wall, a rating badge and the reviews section of any product, anywhere on your site.

What it does not do

  • It does not publish reviews on its own. Reviews are Pending until you approve them, unless you switch on automatic approval.
  • It does not reward only good reviews. A thank-you coupon never depends on the rating: rewarding only positive reviews is not allowed by Google, the FTC and EU consumer law.
  • It does not email anyone who unsubscribed, neither automatically nor from a bulk action or a manual send.
  • It does not prove delivery. WordPress can only report that it handed an email to the mail system. The log says exactly that and never claims an email was delivered or opened.
  • It does not import reviews from other sites or services, and it does not send review requests for orders that are not in an eligible status.
  • It does not replace WooCommerce reviews. Reviews are ordinary WooCommerce product reviews, so they keep working if you deactivate the plugin.
Honest statusThe plugin is covered by an automated test suite of the whole workflow (scheduling, idempotent sending, retries, tokens, verification, bulk actions, the My Account button, unsubscribing, coupons, the product page section and its votes, privacy tools), and the security-relevant lines are mutation-checked. Real SMTP delivery and how the email looks in each mail client depend on your own mail setup, so send yourself a test email first (Settings → Email), and look at a product page in your theme after installing.

2. Requirements

RequirementNeeded
WordPress6.2 or later (tested up to 7.1)
WooCommerce8.0 or later (tested up to 11.2). Product reviews must be enabled under WooCommerce → Settings → Products.
PHP7.4 or later (tested on 8.2 to 8.5)
Order storageHigh-Performance Order Storage (HPOS) or the classic storage. The plugin only uses WooCommerce's order API.
Background jobsAction Scheduler (included with WooCommerce) is used when present; otherwise WP-Cron. On a quiet site add a real server cron job for reliable timing.
EmailWorking email delivery. An SMTP or email-service plugin with delivery logs is recommended.
CompatibilityThe Cart and Checkout blocks are not affected and WooCommerce itself is not modified. On product pages the reviews section takes the place of the review list in the Reviews tab; WooCommerce's review form stays below it. Switch it off under Settings → Product page to keep your theme's own list. In a block theme whose product page shows the details as an accordion without a Reviews tab, add the Product reviews block of this plugin where the reviews should appear.

3. Installation

  1. Download the plugin zip from your account on wpexpertshub.com.
  2. In WordPress open Plugins → Add New → Upload Plugin, choose the zip and press Install Now.
  3. Activate the plugin. It creates five small tables and adds WooCommerce → Review Requests.
  4. Open Review Requests → Settings and check the eligible order statuses and the reminder timing.
  5. Open WooCommerce → Settings → Emails and read the seven emails of the plugin (three review requests, three answers to a review and the low rating alert). Send yourself a test email from Settings → Email.
  6. Open a product with reviews and look at the reviews section in your theme. Settings → Product page switches its parts, or the whole section, off.
  7. Activate your licence under Plugins → WpExperts Hub Licences to receive updates.

Licence and updates

Open Plugins → WpExperts Hub Licences, enter your licence key and the email address used for the purchase, and press Activate. The licence is only used for updates: every feature works without it.

The licence and update check contacts wpexpertshub.com with the licence key, your site address and the plugin version. It never sends orders, customers, emails or reviews.

What activation creates

WhatDetails
Five tables{prefix}wphub_reviews_orders (one row per order in the sequence), {prefix}wphub_reviews_items (one row per order and product), {prefix}wphub_reviews_log (one row per email attempt), {prefix}wphub_reviews_optouts (unsubscribed addresses, as one-way codes) and {prefix}wphub_reviews_votes (helpful votes).
One optionwphub_reviews_settings holds every setting. wphub_reviews_db_version tracks the table version.
A daily jobwphub_reviews_daily: deletes old log rows, revokes long-expired links, un-sticks interrupted sends and re-creates queue jobs that went missing.
Queue jobswphub_reviews_process_stage (one per scheduled email) and wphub_reviews_bulk_item (one per order in a bulk action), in the Action Scheduler group wphub-reviews.

Updating, deactivating and deleting

  • Updating keeps your settings and records. The tables are upgraded automatically when needed (1.3.0 adds the unsubscribe and vote tables).
  • Deactivating pauses the queue and deletes nothing. When you activate again, missing queue jobs are re-created. The reviews stay on your product pages in your theme's own layout.
  • Deleting the plugin removes its data only if Delete all plugin data on uninstall is on (Settings → Data & privacy), including the queued emails. Reviews are WooCommerce reviews and thank-you coupons are WooCommerce coupons: neither is ever deleted.

Multisite

Each site of a network has its own tables, settings and queue. Network activation creates the tables on every site, and on sites created later.

4. Quick start

Five minutes to your first review requests:

  1. Check the basics. Review Requests → Settings → General: Automatic review requests is on and Completed is ticked under eligible order statuses. That is the default.
  2. Look at the review page. Settings → Review form → Preview the review page shows it with your latest products. Pick a Review page colour if your email colour does not suit it.
  3. Look at the emails. Settings → Email shows the timing (5 and 7 days by default), the stars and your logo. Press Preview next to an email, then send yourself a test email.
  4. Look at a product page. Open a product that has reviews: the reviews section shows the summary, the photos and the filters. Settings → Product page sets the order and the number of reviews per page.
  5. Optional: thank reviewers. Settings → Rewards → Thank-you coupon: a personal coupon for every review, sent when you approve it.
  6. Complete an order. Mark a test order Completed. It appears under Review Requests with its initial email scheduled. Open Details and press Send now if you do not want to wait.
  7. Write a review. Open the link from the email, rate the product and submit. The review is Pending. Or sign in as a customer with a completed order and press Leave a review in My Account → Orders.
  8. Approve it. Products → Reviews (or Comments): approve the review. It appears on the product page with a Verified Buyer label, and the customer gets the Review published email.
  9. Ask for older orders too. On WooCommerce → Orders select completed orders and choose Review request: send initial email from Bulk actions.

5. Features

The review sequence

EmailWhen it is sentWhat it says
Initial review requestWhen the order reaches an eligible status, plus the optional delayA friendly request with a review button for every product
First reminder5 days after the initial email was sentA light reminder, only for products that still have no review
Final reminder7 days after the first reminder was sentThe last note. The customer is not asked about these products again
  • Once per order. The sequence of an order starts once. Completed → On hold → Completed does not start it again. An administrator can reset it from the order's detail screen.
  • A disabled email is skipped, not stuck. If you switch an email off in WooCommerce, that step is marked skipped and the next one is planned from the same moment.
  • Rechecked before every send. The order status, refunds and existing reviews are checked at the moment of sending. A product that was reviewed in the meantime, by any route, is never emailed.
  • Cancelled automatically. If the order becomes cancelled, refunded or failed, the waiting emails are cancelled (setting Skip refunded, cancelled and failed orders). A completely refunded product is always skipped, and you choose whether a partial refund stops the sequence.
  • Retries. If WordPress cannot hand an email to the mail system, the plugin tries again after 15, 30 and 45 minutes, then marks the email Failed with the error text. Each attempt is logged once.
  • Unsubscribed means unsubscribed. When the customer uses Stop review emails, the waiting emails of all their orders are cancelled, and no later order, bulk action or manual send emails that address again.

Who is asked, and for what

An order is asked when it has a valid billing email address, an eligible status and passes your rules. Each product is checked on its own.

RuleSetting
Order statusesEligible order statuses (Completed by default; you can add Processing and others)
Guest ordersAsk customers without an account (on by default)
Virtual and downloadable productsInclude them or not
Excluded products and categoriesNever asked. Variations follow their parent product
Minimum order valueOrders below it are not asked
RefundsSkip refunded, cancelled and failed orders; partial refunds optionally stop the sequence
Repeat purchasesAsk again when the same customer buys the same product in a later order
Existing reviewsA review by the same customer stops requests and reminders for that product
Unsubscribed addressesNever asked again (Review Requests → Unsubscribed). The customer can still review from My Account.

The emails

The review request email with five clickable stars and a Write a review button for each product, a thank-you coupon offer and a Stop review emails link
The initial request: greeting, order number and date, five stars and a button per product, the coupon offer (when you use coupons) and the Stop review emails link.
EmailToWhen
Review request, Review reminder (first), Review reminder (final)The customerThe sequence above
Review publishedThe customerWhen you approve a review the customer wrote with the plugin. With the thank-you coupon when it is earned at that moment, and the other products of the order that still wait for a review.
Review thank-you couponThe customerThe coupon on its own: when it is sent as soon as the review is written, or when Review published is switched off
Reply to a reviewThe reviewerWhen you or a shop manager reply to a review in the admin. Never for a reply of another visitor, and never to yourself.
Low rating alertYou (the recipient you set)A review with the rating of Low rating alert for or lower (2 stars or fewer by default), from the review page or the normal product page form
  • Native WooCommerce emails. All seven emails are registered under WooCommerce → Settings → Emails, so enabling, subject, heading, additional content and HTML or plain text work like any other WooCommerce email, with WooCommerce's live preview. Each answer email is sent once per review or reply, however often a review is moderated back and forth.
  • Stars in the email. Five clickable stars under every product. A click opens the review page with that rating chosen; nothing is saved until the customer sends the review. Switch them off with Stars in the email.
  • Stop review emails. Every request and reminder has an unsubscribe link and the one-click unsubscribe header (RFC 8058) that Gmail, Yahoo and Outlook show as their own Unsubscribe button. See Unsubscribe.
  • Placeholders for subject and heading: {site_title}, {order_number}, {order_date} and {customer_first_name}.
  • Branding. Choose an email logo and the sender name and address in Review Requests → Settings → Email, and whether product images and prices appear.
  • Built for mail clients. Table-based layout with inline styles, a bulletproof button, no JavaScript and a plain-text version, readable on phones.
  • Theme overrides. Copy any template of templates/emails/ (and its plain version) to yourtheme/woocommerce/emails/. See Template overrides.
  • Preview and test. A preview with sample data, and a test email to any address. Neither creates a record.
  • No attachments. Review emails never carry attachments, even when an invoice or packing-slip plugin adds PDFs to customer emails.

The review page

The private review page: order number, progress, a product with the star rating, name, title, review text and photos, and a review awaiting approval
The review page: the order and how many products are reviewed, a form for each open product and the reviews already written.
  • No account needed. The link is the key. You can require customers who have an account to sign in first (Sign-in requirement); guest orders never need one.
  • Several products, one page. The order number and date, and for several products a progress bar ("1 of 3 products reviewed"). Products still to review come first; the one from the button that was pressed is at the top. Reviewed products show the review with its stars and status.
  • Fields. Star rating (required or not) with words such as Good or Excellent, name, the billing email (read-only, never shown publicly), optional title, review text with a counter and the minimum length, and optional photos. A star clicked in the email is already selected.
  • How the name is shown. The customer chooses Maya Collins, Maya C. or Maya (setting Name display choice). The choice applies on the product page, in the slider and in emails; in the admin you always see the full name.
  • The coupon offer. When thank-you coupons are on, the page says what the customer gets, "whatever your rating", and after sending shows the code or says when it will arrive.
  • Photos. Previews before sending, with a remove button per photo. JPG, PNG, GIF and WebP only, checked by content on the server and not just by file name, with a maximum number and size per image.
  • Friendly errors. The page checks the rating, name, length and photos before sending, so a photo is not lost to an avoidable mistake; the server checks everything again. If something is wrong the customer sees what to fix and keeps everything they typed.
  • Thank-you and edit. After submitting the customer sees a thank-you and a link to the next product; when everything is reviewed, a thank-you card with Back to your order and Continue shopping. Refreshing the page cannot create a second review. If you allow it, Edit your review opens the form again until you moderate it.
  • Your colours. Buttons, links and highlights use Review page colour (Settings → Review form), or your WooCommerce email base colour when it is empty, with white or dark text chosen for contrast. Your email logo is shown at the top.
  • Accessible and private. Real labels, keyboard-friendly star radios in reading order, visible focus, good contrast, dark mode, a phone layout. The page is not indexed, sends no referrer and is never cached.
The review page on a phone
The same page on a 390 px phone.
The thank-you card after the last product of an order was reviewed
When every product of the order is reviewed.

Leave a review in My Account

My Account, Orders: a Leave a review button next to View on the orders that still have a product to review
My Account → Orders: Leave a review on the orders that still have a product to review.
  • Where it appears. Next to View in My Account → Orders, and with the order actions on the order page. It is a normal WooCommerce order action, so it appears in any theme without template changes. Themes that give the Actions column room for one button only get a little more room on pages that show it.
  • When. For the signed-in customer of the order, when the order is in an eligible status and at least one product can still be reviewed. Reviewed, refunded and excluded products are not offered. Never on the thank-you page right after checkout.
  • What it opens. The same private review page as the email, with Back to your order at the top. An older order without a review request gets one at that moment (no email is sent because of it), and an expired link is renewed.
  • Safe to share by accident. The button carries the order number and a security code that expires within a day (a nonce), never the review link. Only the signed-in customer of that order gets through; anyone else is sent back to their own orders.
  • Your reviews on the order page. Under the order details, every product of the order with its status (Not reviewed yet, Awaiting approval, Published), its stars, a Write a review button or a link to the published review.
  • Settings. Review Requests → Settings → My Account: switch the button and the list on or off, and change the button text.
The order page in My Account with the Leave a review action and the Your reviews list
The order page: Leave a review with the order actions and the Your reviews list.
  • Random and unguessable. A link carries a random selector and a signature derived from your site's secret keys. A copy of the database alone cannot produce a working link, and the order number is not in the link.
  • They expire. Links expire after the number of days you set, counted from the last email sent (60 by default). An expired link shows a plain message and nothing about the order. A daily job permanently revokes links that expired long ago.
  • Only what was bought. The page and the form only ever accept products that belong to the order behind the link. The product in the URL only chooses which product is shown first.
  • Spam protection. A WordPress nonce on every form, a hidden honeypot field, and rate limits per address and link. A nonce alone is never treated as authorisation.
  • One review per product. Duplicate prevention is atomic, so two parallel submissions cannot both succeed. You can choose one review per product and order, or one per customer and product across orders.
  • Sharing a link yourself. The order's detail screen shows the customer's link with Copy link, for example to send it in a chat, and Renew link makes an expired link work again for the number of days you set.

Reviews, moderation and Verified Buyer

  • Native reviews. A submitted review is a normal WooCommerce product review. It is Pending by default, and you approve, reject or trash it in Products → Reviews or Comments. The request status follows what you do there.
  • Automatic approval is off by default. You can switch it on in Settings → Review form.
  • What makes a review verified. The review gets WooCommerce's own verified-owner flag only when the order exists, is paid, contains the product on a line that is not completely refunded, and has the same billing email as the review. A guest is never marked verified just because an email matches.
  • The label. Show a Verified Buyer badge, WooCommerce's own "(verified owner)" text, or nothing. It is shown in the reviews section, and through WooCommerce's review hooks in your theme's review list when you switch the section off.
  • Titles and photos are shown with the review text on the product page.
WooCommerce Products, Reviews: a pending review waiting for approval
A new review waiting in the normal WooCommerce review list.

Reviews on the product page

The reviews section of a product page: average rating with a bar per star level, customer photos, filters, sorting, Verified Buyer labels and helpful votes
The reviews section: summary, customer photos, filters and sorting, then the reviews with their label, photos and helpful votes.
  • Where. In the Reviews tab of the product page, in place of the theme's review list. WooCommerce's own review form stays below it, and Write a review scrolls to it. With the shortcode or block it can be placed on any page.
  • Rating summary. The average, the number of reviews and a bar for each star level. A click on a bar shows only those reviews.
  • Customer photos. A strip of every photo from the reviews (swipe on phones), and a full-screen viewer with previous and next and a link to the review the photo belongs to.
  • Filters and sorting. All reviews, With photos, Verified buyers and the star bars; sort by newest, highest, lowest or most helpful. Show more reviews loads the next ones without reloading the page.
  • Was this helpful? Yes and No under every review: one vote per visitor and review (signed-in customers by account, guests by a cookie), never on one's own review, with a limit per address against scripted voting.
  • Replies. Approved replies are shown under the review they answer.
  • Long reviews are folded behind Read more. Reviewer pictures are initials in a coloured circle by default; Gravatar is a choice.
  • Theme-proof and light. The styles are scoped to the section, follow the review page colour and work from phone to desktop. Its files load only on pages that show the section, a slider or a badge.
The reviews section on a 390 pixel wide phone screen
The same section on a phone.
A customer photo in the full-screen viewer with previous and next buttons and a link to the review
The photo viewer.

Thank-you coupons

The Review published email with the review, a See your review button and the thank-you coupon
The Review published email with the coupon.
  • Off by default. Switch it on in Settings → Rewards.
  • Every review counts. The coupon never depends on the rating. Rewarding only good reviews is not allowed by Google, the FTC and EU consumer law, and the review page says "whatever your rating".
  • When. When the review is approved (recommended: spam and empty reviews never earn one), or as soon as it is sent. One coupon per order or one per reviewed product, for any review or only reviews with a photo.
  • What. A percentage or a fixed amount, a minimum spend, an expiry, your code prefix (THANKS-7KQ4MZP2), individual use and sale items as you choose. Each coupon is single use and works only with the billing email of the order.
  • Only customers' own reviews. Reviews written on the review page or from My Account earn a coupon; a review you add for a customer never does. A coupon is created once per order (or product), even if a review is approved twice.
  • Disclosure. Mark rewarded reviews shows "Received a thank-you coupon for reviewing" under those reviews, as consumer-protection rules recommend for incentivised reviews.
  • Where to see them. The code is in the email and on the review page, an order note records it, and the Rewards tab lists the latest coupons with their order and whether they were used. The coupons are normal WooCommerce coupons.

Answers to a review

  • Review published. When you approve a review written with the plugin, the customer hears that it is live, with a link to it, the coupon if one was earned, and the other products of the order that still wait for a review.
  • Reply to a review. Reply to a review in Products → Reviews and the reviewer receives your reply with their review. Only replies of the shop's staff are sent.
  • Low rating alert. You hear about a 1 or 2-star review (or 3, as you choose) the moment it is written, with the customer, the order and buttons to reply or moderate. Choose who receives it in WooCommerce → Settings → Emails.
The Low rating alert email with the review, the customer, the order and buttons to reply or moderate
The low rating alert.

Unsubscribe

The Stop review emails page with a masked address and a confirmation button
The link in the email opens a short confirmation; mail programs unsubscribe with one click without it.
  • Link and header. Every request and reminder has a Stop review emails link and the List-Unsubscribe / List-Unsubscribe-Post headers (RFC 8058), which Gmail, Yahoo and Outlook show as their own Unsubscribe button. Large mailbox providers expect them from senders. Setting: Unsubscribe link (on).
  • What it stops. Review requests and reminders to that address, from any order, also from bulk actions and manual sends. Answers to the customer's own review, your replies and the coupon are still sent, and order emails are not affected.
  • The list. Review Requests → Unsubscribed shows the addresses masked (m***a@example.com), how and when they unsubscribed, and lets you add, find or remove one. The list stores a one-way code of each address, so it cannot be read back as a mailing list.
Review Requests, Unsubscribed: how unsubscribing works, add or find an address, and the list of masked addresses
Review Requests → Unsubscribed.

Shortcodes and blocks

A rating badge and a reviews slider on a page
The rating badge and the reviews slider on a page.
Block / shortcodeWhat it showsOptions
Reviews slider
[wphub_reviews_slider]
Recent approved reviews of the shop as a slider or a wallcount (9), min_rating (4), layout slider|grid, photos yes|no, verified yes|no, product (ids), category (slugs or ids), title, excerpt (words, 40)
Rating badge
[wphub_reviews_badge]
The shop's (or a product's) average rating and number of reviewsstyle inline|card, link, product
Product reviews
[wphub_reviews product="12"]
The reviews section of one product on any pageproduct, form yes|no, heading yes|no

In the block editor search for "reviews": the three blocks show a live preview. The same list, with copy buttons, is under Settings → Product page.

Insights

Insights: review emails and reviews per week, which email brought the reviews, the rating distribution and ratings per product
Review Requests → Insights.
  • Key numbers of the shop rating, review emails and reviews in the last 12 weeks, and unsubscribed addresses.
  • Emails and reviews per week for 12 weeks, as a chart with the numbers in a table below it.
  • Which email worked. For the request, the first and the final reminder: emails sent, reviews written after it and the share of orders that reviewed after receiving it; plus the reviews written from the My Account button. Reviews written before 1.3.0 are counted separately, because the email was not recorded then.
  • Rating distribution of all approved product reviews of the shop.
  • Ratings per product. Average rating, reviews (with photos), 1–2 star reviews, reviews awaiting approval, the review rate of the requests and the newest review; sortable, searchable and with a Below 3 stars view.

Managing requests

  • Dashboard. What needs your attention (reviews waiting for approval, emails that could not be sent), four key numbers (reviews collected, review rate, average rating, emails sent), filters (waiting, awaiting approval, fully reviewed, email failed, cancelled), search by order number, name or email, sortable columns and 20 requests per page.
  • The three emails at a glance. Each row shows the request, the reminder and the final reminder as a small track (sent, planned, failed, cancelled) with what comes next or what was sent last.
  • A status for every product. Waiting, Awaiting approval, Approved, Rejected, plus an overall status for the order: Not Requested, Scheduled, Email Sent, Reminder Scheduled, Partially Reviewed, Submitted — Awaiting Approval, Review Approved, Completed, Email Failed, Unsubscribed, Cancelled.
  • Order detail. The customer, the review status, the next email, every product with its review, the customer's review link with Copy link and Renew link, and the three emails as a timeline with Send now or Send again, Reschedule, Cancel pending reminders, Retry failed emails and Reset sequence.
  • Resending needs a confirmation. An email that was already sent is only repeated after you confirm it. Manual sends still respect product eligibility and existing reviews; administrators can tick Ignore eligibility checks for the order rules.
  • Reset never deletes reviews. It revokes the old links, clears the email progress and starts again for the products without a review.
Order detail with customer, review status, next email, products, the review link and the email timeline
Order detail: products with their reviews, the review link and the three emails as a timeline.

On the WooCommerce Orders screen

  • A Review request column with a short status (Not Requested, Email Sent, Awaiting Review, Partially Reviewed, Reviewed, Failed) that links to the order's detail screen.
  • Bulk actions for the selected orders: send the initial email, the first or the final reminder, cancel pending reminders and retry failed emails.
  • A Review request box on the order edit screen with the status, the three emails and one-click actions.
  • Works with HPOS and with the classic order list, and does not interfere with WooCommerce's filtering, sorting or other plugins' actions.
The WooCommerce Orders list with a Review request column
The Orders list with the Review request column.
The Review request box on the order edit screen
The box on the order edit screen.

Bulk sending

  • Background processing. A bulk action never sends emails during the click. Each order becomes one queued job, so hundreds of orders are safe.
  • Every order is checked on its own. Ineligible orders, orders without a billing email, products that were already reviewed and emails that were already sent are skipped and logged. A bulk action never repeats an email that was already sent.
  • A summary. A banner shows how many orders are done, skipped or failed, and the Email log shows each one with the trigger Bulk action.
  • Confirmation. You are asked before emails are queued and for large selections.
  • Sending limit. Set a maximum of emails per hour; the rest waits in the queue.

Add a review for a customer

The Add a review form with an order loaded
Enter a review that arrived by phone or email.
  • Load an order, choose one of its products, and the customer's name and email are filled in from the order. Or search for a product and a customer without an order.
  • The review is saved as a normal review, Pending unless you choose Approved. With an order it is recorded as a verified purchase only if the order is paid and contains the product.
  • Without an order you can tick Verified Buyer, for a customer you know bought the product (an offline or old order). It is recorded as set by you, not proven by an order, and the customer email is optional.
  • It is marked as entered by an administrator, with your user and the time, in a box on the review's edit screen, so it is never mistaken for a review the customer wrote. An order note records it too.
  • Duplicates for the same order and product are refused.

Email log and reliability

The email log with type, result, trigger and details
Every attempt is logged: when, which order, which email, the result and who triggered it.
  • Each attempt records the order, product when relevant, address, type, scheduled time, attempt time, result, error text, the trigger (automatic, manual or bulk) and the administrator for manual sends.
  • The result is worded honestly: Handed to mail system means WordPress passed it on without an error. It is not proof of delivery.
  • Newest first; filter by order, type, result and date. Message bodies are not stored, and old rows are deleted after the retention period you choose.
  • The answer emails (published, coupon, reply, low rating alert) are logged too.

Tools

  • Export every request as a CSV file (spreadsheet formulas in customer text are neutralised).
  • Retry failed emails, clean up expired links, delete old log entries and re-create missing queue jobs.
  • Scheduled jobs: the list of what is waiting in the queue.
  • Reset the plugin's settings (administrators only) after a confirmation.

6. Admin screens

Everything is under WooCommerce → Review Requests, in seven tabs, plus a column and a box on the Orders screens. What customers see in My Account is described under Leave a review in My Account.

ScreenWhat it is for
Review requestsWhat needs your attention, key numbers and the table of every order in the sequence
Order detailOne order: products, reviews, the review link, the three emails and their actions
InsightsEmails and reviews per week, which email worked, rating distribution, ratings per product
Add a reviewEnter a review on behalf of a customer
Email logEvery email attempt, with filters
UnsubscribedAddresses that asked for no more review emails
SettingsGeneral, Email, Review form, Product page, Rewards, My Account, Data & privacy
ToolsExport, retry, clean-up and the queue

Review requests

The table filtered to orders that are waiting for a review
Filter pills narrow the table, for example to the orders that are still waiting for a review.

At the top, a line for anything that needs you: reviews waiting for your approval (with Moderate reviews) and orders whose review email could not be sent (with Show them). Then four key numbers, with fixed counting rules so that nothing is counted twice:

NumberWhat it counts
Reviews collectedProducts that have a review collected by the plugin, whatever its moderation state, split into published and awaiting approval
Review rateRequested products that received a review: reviews submitted ÷ (reviews submitted + pending requests), and how many products still wait
Average ratingThe average star rating of the reviews collected by the plugin (pending and approved)
Emails sentInitial requests, first and final reminders, each email once however many attempts it took; with the reminders and the failed attempts (a retry counts as a new attempt)

All numbers in Insights opens the Insights tab.

The table has one row per order: the order number, date and status (with links to the email log and the order); the customer; the products with a status each; the three emails as a track with what comes next or what was sent last; and the overall review status with "x of y reviewed". Bulk actions are above the table.

Order detail

Open it with Details in the table, with the status in the Orders list, or from the box on the order screen. See the figure under Managing requests. Actions:

ActionWhat it does
Send now / Send againSends that email immediately. A repeat needs the confirmation box ticked.
RescheduleMoves the email to the date and time you choose
Ignore eligibility checksAdministrators only: sends even if the order status or other order rules would stop it
Cancel pending remindersCancels the emails still waiting. Links keep working.
Retry failed emailsPuts a failed email back in the queue
Reset sequenceRevokes old links, clears the email progress and starts again. Existing reviews are kept.
Copy linkCopies the customer's private review link (the same as in the emails), for example to send it in a chat
Renew linkMakes the link work again for the number of days in Review link lifetime, counted from now
Email historyOpens the log filtered to this order

Add a review

See the figure under Add a review for a customer. Enter an order number and press Load order to choose one of its products and prefill the customer; leave the order empty to enter a review without an order (it is then verified only if you tick Verified Buyer).

Email log

Filters for order, type, result and dates. Columns: time, order, address, type, result, scheduled time, who triggered it and the details (the error text of a failure).

Settings

Seven sections with a Save button each. Saving one section never changes another, and options that depend on a switch are dimmed while it is off. All settings are listed under Settings.

Tools

The Tools tab with maintenance cards and the scheduled jobs list
Maintenance cards and the list of queued jobs.

7. Settings

Open Review Requests → Settings. The defaults are chosen so that the plugin works without changes. Subject, heading, additional content and the on/off switch of each email are in WooCommerce → Settings → Emails.

General

Who is asked, for which orders and products, and how long the review links last.

The General settings tab
The General settings tab.
SettingWhat it doesDefault
Automatic review requestsSend review requests automatically when an order reaches an eligible status. Manual and bulk sending keep working when this is off.On
Eligible order statusesThe sequence starts when an order changes to one of these statuses. It starts once per order; going back and forth between statuses does not restart it.Completed
Guest ordersAlso ask customers who checked out without an account.On
Virtual and downloadable productsInclude virtual and downloadable products in review requests.On
Excluded productsNever ask for a review of these products (variations follow their parent product).None
Excluded categoriesProducts in these categories are never requested.None
Minimum order valueOrders below this total are not asked. 0 = no minimum.0
Skip refunded, cancelled and failed ordersPending emails of an order are cancelled when it becomes refunded, cancelled or failed.On
Partially refunded orders stay eligibleProducts that are completely refunded are always skipped. When this is off, any refund on the order stops the sequence.On
Repeat purchasesAsk again when the same customer buys the same product in a later order.On
An existing review stops requestsDo not ask for (or remind about) a product the customer has already reviewed.On
Review link lifetime (days)Counted from the last email that was sent. 0 = links never expire (not recommended).60

Email

Timing, what the emails show, sender and logo, the unsubscribe link and the low rating alert.

The Email settings tab with the seven emails and the test email form
The Email settings tab with the seven emails and the test email form.
SettingWhat it doesDefault
Delay before the first email (hours)0 = send as soon as the order is completed.0
First reminder (days after the request)Default 5 days after the initial request.5
Final reminder (days after the first reminder)Default 7 days after the first reminder.7
Sender nameLeave empty to use the WooCommerce "From" name.Empty (uses the WooCommerce value)
Sender email addressLeave empty to use the WooCommerce "From" address. Use an address on your own domain so mail is not marked as spam.Empty (uses the WooCommerce value)
Email logoShown at the top of the review emails. Empty = the WooCommerce email header image.None
Product images in emailsShow a picture of every product next to its stars and button.On
Product prices in emailsShow the current price under each product name.Off
Stars in the emailShow five clickable stars under each product. A click opens the review page with that rating already chosen; the customer still writes and sends the review there.On
Unsubscribe linkAdd a "Stop review emails" link and the one-click unsubscribe header (used by Gmail, Yahoo and Outlook) to review requests and reminders. Strongly recommended.On
Low rating alert forWhich reviews trigger the "Low rating alert" email to you. Switch the alert on or off and choose who receives it in WooCommerce โ†’ Settings โ†’ Emails. Choices: 1 star; 2 stars or fewer; 3 stars or fewer.2 stars or fewer
Sending limit (emails per hour)Emails over the limit wait in the queue. 0 = no limit. Useful on shared hosting.0
Emails you can edit in WooCommerceThe seven emails are Review request, Review reminder (first), Review reminder (final), Review published, Review thank-you coupon, Reply to a review and Low rating alert. Each has WooCommerce's enable switch, subject, heading, additional content and email type; the alert also its recipient. The cards under the settings show which are on, with Preview and Edit in WooCommerce.
The Review request email in WooCommerce, Settings, Emails
The Review request email in WooCommerce → Settings → Emails.

Review form

What the review page asks for, how reviews and names are shown and the colour of the page.

The Review form settings tab with the review page colour and the page preview
The Review form settings tab with the review page colour and the page preview.
SettingWhat it doesDefault
Review titleShow a title field on the review form.On
Image attachmentsLet customers add photos (JPG, PNG, GIF, WebP).Off
Maximum images per reviewMaximum images per review.3
Maximum size per image (MB)Maximum size per image (MB).2
Minimum review length (characters)Minimum review length (characters).10
Maximum review length (characters)Maximum review length (characters).2000
Star rating requiredCustomers must choose 1 to 5 stars before they can send the review.On
Sign-in requirementGuest orders never need an account. Choices: Never - the email link is enough; Customers with an account must sign in first.Never - the email link is enough
Duplicate preventionChoices: One review per product in each order; One review per customer and product (across orders).One review per product in each order
Approve reviews automaticallyOff by default: reviews wait for moderation in WooCommerce / Comments.Off
Customers can edit before approvalThe email link keeps working to change rating, title and text until the review is moderated.Off
Verified Buyer labelOnly reviews of a real purchase carry the label. Choices: Verified Buyer badge; WooCommerce default text "(verified owner)"; Do not show a label.Verified Buyer badge
Name display choiceCustomers choose how their name appears with the review: full name, first name and initial ("Maya C.") or first name only. You always see the full name in the admin.On
Review page colourButtons, links and highlights on the review page. Leave empty to use the WooCommerce email base colour, so the page matches your emails.Empty (the WooCommerce email base colour)
Preview the review pageUnder the settings, Preview the review page opens the page your customers see, with your latest products and the saved settings. Nothing entered there is saved.

Product page

The reviews section on product pages, and the shortcodes and blocks.

The Product page settings tab with the shortcodes
The Product page settings tab with the shortcodes.
SettingWhat it doesDefault
Enhanced reviews sectionReplace the plain review list on product pages with a rating summary, filters, sorting, customer photos and "load more". The WooCommerce review form stays below it. Switch off to keep your theme's own review template.On
Rating summaryAverage rating and a bar for each star level. A click on a bar shows only those reviews.On
Customer photosA strip of all photos from the reviews above the list, and a full-screen viewer for every review photo.On
Helpful votes"Was this helpful?" Yes / No under every review (one vote per visitor) and a "Most helpful" sort.On
Filters and sortingFilter by stars, "with photos" and "verified buyers"; sort by newest, highest, lowest or most helpful.On
Default orderChoices: Newest first; Highest rating first; Lowest rating first; Most helpful first.Newest first
Reviews per pageShown at first; "Show more reviews" loads the next ones without reloading the page.5
Reviewer pictureGravatar asks gravatar.com for every reviewer's picture; initials need no outside service. Choices: Initials in a coloured circle; Gravatar (initials when there is none); No picture.Initials in a coloured circle
Shortcodes and blocksUnder the settings the three shortcodes are listed with copy buttons, and Open a product with reviews shows the section. See Shortcodes and blocks. Switching the section off brings back your theme's own review list; nothing else changes.

Rewards

The thank-you coupon for reviewers: who gets one, the discount and the disclosure under rewarded reviews.

The Rewards settings tab with the latest thank-you coupons
The Rewards settings tab with the latest thank-you coupons.
SettingWhat it doesDefault
Thank-you couponSend a personal, single-use WooCommerce coupon to customers who write a review. Every review counts, whatever its rating: rewarding only good reviews is not allowed by Google and consumer-protection rules.Off
Send the couponAfter approval, spam and empty reviews never earn a coupon. With automatic approval both choices are the same. Choices: When the review is approved (recommended); As soon as the review is sent.When the review is approved (recommended)
How many couponsChoices: One coupon per order; One coupon per reviewed product.One coupon per order
Which reviews earn it"Only reviews with a photo" needs photos switched on in Review form. Choices: Any review; Only reviews with a photo.Any review
Discount typeChoices: Percentage discount; Fixed amount off the cart.Percentage discount
DiscountPercent or amount in the shop currency, depending on the type. A percentage is limited to 100.10
Minimum spend0 = no minimum.0
Valid for (days)0 = the coupon never expires.30
Code prefixLetters, digits and dashes. A random part is added, for example THANKS-7KQ4MZP2.THANKS
Individual use onlyThe coupon cannot be combined with other coupons.On
Exclude sale itemsThe coupon does not reduce products that are already on sale.Off
Mark rewarded reviewsShows "Received a thank-you coupon" under reviews that earned one, so shoppers know (recommended by consumer-protection rules for incentivised reviews).On
The rating never mattersThere is deliberately no setting that limits coupons to good ratings: Google, the FTC and EU consumer law do not allow rewarding only positive reviews. Only reviews with a photo is allowed because it does not depend on the opinion.

My Account

The Leave a review button on the customer's orders and the Your reviews list on the order page.

The My Account settings tab
The My Account settings tab.
SettingWhat it doesDefault
Review button on ordersAdds a button to the customer's orders in My Account โ†’ Orders and on the order page while the order has a product to review. It opens the same private review page as the email link, and only for the signed-in customer of the order.On
Button textLeave empty for "Leave a review" (translated with the plugin).Empty (“Leave a review”)
Review status on the order pageLists the products of the order under the order details with their review status (not reviewed yet, awaiting approval, published) and a "Write a review" button for each product that still needs one.On
Where customers see itThe button shows in My Account → Orders and with the order actions on the order page, for the signed-in customer of an order in an eligible status that still has a product to review. See Leave a review in My Account.

Data & privacy

Log retention and what happens when the plugin is deleted.

The Data and privacy settings tab
The Data and privacy settings tab.
SettingWhat it doesDefault
Keep the email log for (days)0 = keep forever.90
Delete all plugin data on uninstallRemoves the tables and settings when the plugin is deleted. Submitted reviews are WooCommerce reviews and are never deleted.Off

8. Developer reference

Hooks

HookTypeWhat it does
wphub_reviews_order_problemfilter( string $problem, WC_Order $order, bool $check_status ). The reason an order cannot be asked, or an empty string. Return a non-empty code to exclude an order; return an empty string to allow it.
wphub_reviews_product_problemfilter( string $problem, int $product_id, WC_Order $order, $item ). The same for one product of an order. Use it to exclude products by any rule of your own.
wphub_reviews_review_createdaction( int $comment_id, int $product_id, int $order_id, string $source ). A review was saved. $source is customer or admin.
wphub_reviews_email_sentaction( int $order_id, string $stage, string $trigger ). An email was handed to the mail system. $stage is initial, first or final; $trigger is auto, manual or bulk.
wphub_reviews_upload_handlerfilterThe WordPress upload function used for review photos: wp_handle_upload (default) or wp_handle_sideload (for tests and importers).
wphub_reviews_account_contextfilter( bool $here, WC_Order $order ). Whether the My Account button and the Your reviews list may show on the current page. Default: is_account_page(), so never on the thank-you page after checkout. Return true to show them on your own order pages too.
wphub_reviews_unsubscribedaction( string $email, string $source, int $order_id ). An address asked for no more review emails. $source is link, oneclick or admin; $order_id is the order of the email (0 for the administrator).
wphub_reviews_reward_couponfilter( WC_Coupon $coupon, WC_Order $order, WP_Comment $comment ). The thank-you coupon before it is saved: change limits, add product restrictions…
wphub_reviews_reward_createdaction( WC_Coupon $coupon, WP_Comment $comment, WC_Order $order ). A thank-you coupon was created.
wphub_reviews_list_pagefilter( WP_Comment[] $list, int $product_id, array $state ). One page of the reviews section, in order (for example to hide some reviews). $state holds sort, rating, photos, verified and page.
wphub_reviews_review_cardaction( WP_Comment $comment ). Inside a review of the reviews section, after its text and photos: print your own output.
wphub_reviews_slider_queryfilter( array $args, array $atts ). The get_comments() arguments of the reviews slider or wall, with its shortcode or block attributes.
// Never ask for reviews of products tagged "gift-card".
add_filter( 'wphub_reviews_product_problem', function ( $problem, $product_id ) {
    if ( '' === $problem && has_term( 'gift-card', 'product_tag', $product_id ) ) {
        return 'gift_card';
    }
    return $problem;
}, 10, 2 );

The seven emails are standard WooCommerce emails (ids wphub_reviews_initial, wphub_reviews_first, wphub_reviews_final, wphub_reviews_published, wphub_reviews_reward, wphub_reviews_reply and wphub_reviews_low_rating), so WooCommerce's own email filters such as woocommerce_email_subject_{id} apply. Review emails never carry attachments.

The product page section

  • Swapped in on comments_template for product pages only (WooCommerce's single-product-reviews.php); a theme can override it with yourtheme/wphub-reviews/product-reviews.php. Its stylesheet is printed right before the section and its script in the footer, only on pages that show the section, a slider or a badge.
  • Filters, sorting and Show more reviews call admin-ajax.php?action=wphub_reviews_list, votes wphub_reviews_vote (both also for visitors; read-only lists and one vote per visitor need no nonce). A guest's vote is kept with a random id in the cookie wphub_reviews_voter; votes are limited to 60 per hour per address.
  • The rating summary of a product is cached in the transient wphub_reviews_sum_{product id} and the shop's in wphub_reviews_store_stats; both are cleared when a review changes.
  • Colours: --wphub-pr-accent and --wphub-pr-on-accent on .wphub-pr, .wphub-rw (slider) and .wphub-rb (badge), set from the review page colour.

The My Account button

  • The button is the WooCommerce order action wphub-reviews-leave (filter woocommerce_my_account_my_orders_actions), so it is printed by WooCommerce's own templates and by themes that call wc_get_account_orders_actions(). Its CSS class is wphub-reviews-leave.
  • Its URL is the order page plus ?wphub-review-order=<order id>&_wpnonce=<nonce> (and &wphub-review-product=<product id> from the list). A handler on template_redirect checks the signed-in customer, the nonce and the order, creates the review request if there is none (no email is scheduled), renews an expired link and redirects to the review page with via=account.
  • via=account only marks where the visit came from; it is stored with the review as _wphub_reviews_channel for the dashboard. It never grants access.
  • The list on the order page is printed on woocommerce_order_details_after_order_table (priority 20), styled by assets/css/account.css under .wphub-reviews-account.

Queue jobs

  • wphub_reviews_process_stage( $order_id, $stage ) sends one email of the sequence. A job that runs before the time on the record (left over from an earlier plan) puts itself back at that time.
  • wphub_reviews_bulk_item( $batch_id, $order_id, $action, $admin_id ) runs one order of a bulk action.
  • Both run in the Action Scheduler group wphub-reviews (WooCommerce → Status → Scheduled Actions) and are de-duplicated. Without Action Scheduler the same hooks run from WP-Cron. Deactivating the plugin and deleting its data cancel them.

Data model

TableHolds
{prefix}wphub_reviews_ordersOne row per order: order id, customer id, name, email, order date, link selector and expiry, sequence state (active or cancelled), and for each email (initial, first, final) a status, planned time and sent time, plus last email, retry count and last error.
{prefix}wphub_reviews_itemsOne row per order and product (unique): order item id, product and variation id, status, linked review id and submission time.
{prefix}wphub_reviews_logOne row per email attempt: order, product, address, type, scheduled and attempt time, result, error, trigger, administrator and batch id.
{prefix}wphub_reviews_optoutsOne row per unsubscribed address: a SHA-256 code of the lower-case address (unique), a masked hint, how (link, one click, administrator), the order of the email and the time.
{prefix}wphub_reviews_votesOne row per review and voter (unique): the vote, and the voter as u: plus a user id or c: plus a code of the guest cookie.

The orders and items tables also hold reward_coupon_id: 0 for no coupon, -1 while one is being created, else the coupon's id.

Email statuses: none, scheduled, sending, sent, failed, skipped, cancelled. Product statuses: requested, submitting, submitted (awaiting approval), approved, rejected (trashed, spam or deleted), skipped, cancelled.

Review meta

Comment metaMeaning
rating, verifiedWooCommerce's own rating and verified-owner flag
_wphub_reviews_order_idThe order the review belongs to
_wphub_reviews_titleThe review title
_wphub_reviews_imagesAttachment ids of the customer's photos (only attachments the plugin created are shown)
_wphub_reviews_sourcecustomer or admin
_wphub_reviews_channelCustomer reviews (1.2.0 and later): email or account, the button that opened the review page
_wphub_reviews_stageCustomer reviews (1.3.0 and later): the email the review came from, initial, first or final, or account or link
_wphub_reviews_name_formatHow the name is shown: full, initial (Maya C.) or first
_wphub_reviews_rewardedThe id of the thank-you coupon the review earned (the disclosure under the review)
_wphub_reviews_verified_manualSet when an administrator ticked Verified Buyer for a review entered without an order
_wphub_reviews_admin_id, _wphub_reviews_admin_timeWho entered an administrator review and when

Reason codes

Order: missing, reviews_disabled, invalid_email, guest, status, refunded, min_value. Product: product_unavailable, reviews_closed, virtual, excluded_product, excluded_category, refunded_item, already_reviewed, repeat_purchase.

Template overrides

Copy templates/emails/wphub-review-request.php, wphub-review-published.php, wphub-review-reward.php, wphub-review-reply.php or wphub-review-alert.php (and the same files in templates/emails/plain/) to yourtheme/woocommerce/emails/ and yourtheme/woocommerce/emails/plain/. The reviews section: templates/product-reviews.php to yourtheme/wphub-reviews/product-reviews.php. The review page's look is set by one small stylesheet with CSS variables (--wh-accent, --wh-text, --wh-bg …) that you can override with your own CSS on the .wphub-reviews-page body class; the colour itself is a setting.

CSV export

Columns: order_id, order_date, customer, email, sequence, initial_status, initial_sent, first_status, first_sent, final_status, final_sent, products_eligible, products_reviewed, reviews_approved, reviews_awaiting_approval, last_email_at. Times are UTC.

9. Privacy and data

WhatWhereHow long
Order id, billing name and email, email progress and timesTable wphub_reviews_ordersUntil the order is deleted, the data is erased, or the plugin data is removed
Email attempts: order, address, type, time, result, error textTable wphub_reviews_logThe number of days in Settings → Data & privacy (90 by default; 0 keeps everything). No message bodies are stored.
The review: name, text, rating, title, photos, the order it belongs toWordPress comments (WooCommerce reviews)Until you delete the review. WordPress's own privacy tools handle it.
The customer's IP address with a review they submitThe review (WordPress's standard comment field)Same as the review
Unsubscribed addresses: a one-way code (SHA-256) of the address and a masked hint such as m***a@example.comTable wphub_reviews_optoutsUntil you remove the address from the list. Kept on erasure, so the address is never emailed again.
Helpful votes: the vote with the user id, or with a code of a random guest idTable wphub_reviews_votes; the guest id in the cookie wphub_reviews_voterVotes until the review is deleted; the cookie one year
Thank-you coupons, limited to the billing email of the orderWooCommerce couponsUntil you delete the coupon
  • Export and erase. The plugin registers a personal-data exporter and eraser by email address (Tools → Export / Erase Personal Data). The export includes the unsubscribe entry and the votes. Erasing removes the request records and log rows of that address, the votes of the account and the queued emails; the unsubscribe entry is kept (and reported as kept), because erasing it would let the review emails start again.
  • Reviewer pictures. Initials by default. If you choose Gravatar, visitors' browsers load the pictures from gravatar.com.
  • Suggested policy text is added under Settings → Privacy.
  • Deleted orders. When an order is deleted, its request record and queue jobs are removed.
  • The email address is never shown on the review page or on the product page, and links do not contain it or the order number.
  • Outside servers. The only outside contact is the WpExperts Hub licence and update check, if you activate a licence. It sends the licence key, your site address and the plugin version.

Uninstalling

Deleting the plugin keeps everything unless Delete all plugin data on uninstall is on. With it on, the five tables, the settings, transients and queued jobs are removed. Reviews and thank-you coupons are never deleted.

10. Troubleshooting

First, the quick checks

  • Review Requests → Email log shows every attempt with its result and error text.
  • Review Requests → Tools → Scheduled jobs shows what is waiting in the queue, and WooCommerce → Status → Scheduled Actions (group wphub-reviews) shows the Action Scheduler side.
  • Settings → Email shows whether each of the seven emails is enabled in WooCommerce.

Emails are not sent

SymptomWhat to do
The order has no row under Review RequestsIts status is not eligible (Settings → General), the billing email is missing or invalid, guests are excluded, no product can be reviewed, or product reviews are off in WooCommerce. The order was also not completed after the plugin was activated: use Bulk actions on the Orders screen for older orders.
The email is "Scheduled" but never goes outThe queue is not running. Check Scheduled Actions. Without Action Scheduler the queue depends on WP-Cron: visit the site, or add a real server cron job that calls wp-cron.php. Tools → Re-create missing queue jobs repairs a cleared queue.
The log says "Skipped"The details column says why: the order status changed, the product was refunded or already reviewed, the email is disabled, or nothing was left to review. This is the plugin protecting the customer from a pointless email.
The log says "Cancelled" with "The customer unsubscribed from review emails"The address is on the Unsubscribed list. If that was a mistake (for example the customer asks for the emails again), remove it under Review Requests → Unsubscribed.
The log says "Failed"WordPress could not hand the email to the mail system. The error text comes from your mail setup. Fix it (SMTP details, sender address), then use Retry failed emails.
"Handed to mail system" but the customer got nothingWordPress cannot see past its own mail transport. Check your SMTP or email service's delivery log, the spam folder and your domain's SPF and DKIM. Use a sender address on your own domain (Settings → Email).
Emails are lateCheck Delay before the first email and Sending limit. Over the limit, emails wait ten minutes and try again.
An email is stuck on "Sending"A request was interrupted. The daily job turns it into Failed so you can retry it.

The review page

SymptomWhat to do
"This review link is not valid"The link is incomplete, was revoked by a reset, or belongs to another site. Use the button in the latest email.
"This review link has expired"Raise Review link lifetime, or open the order's detail screen and send the email again (every send renews the expiry).
"Reviews are not available for this order"The order is no longer in a status that allows a review (for example refunded or cancelled).
"This page has expired"The form was open for more than a day. Reload the page and submit again.
The page is cached or shows a login promptExclude URLs containing wphub-review from page caching. The plugin sends no-cache headers, but some hosts ignore them. A login prompt appears only if Sign-in requirement is on and the order belongs to a registered customer.
A photo is refusedOnly JPG, PNG, GIF and WebP are accepted, within the count and size limits of Settings → Review form.

The My Account button

SymptomWhat to do
An order has no Leave a review buttonThe button shows only for the signed-in customer of the order (guest orders use the email link), when the order is in an eligible status (Settings → General) and a product can still be reviewed. Reviewed, refunded and excluded products, and products the customer already reviewed from an earlier order, are not offered. Check Settings → My Account too.
The button shows in the list but not on the order pageThe order page shows WooCommerce's order actions in the order details table. A theme that rebuilt that page without them can still show the Your reviews list, which has a button per product.
"There is nothing to review in this order."Between showing the button and pressing it, every product was reviewed or became ineligible. The Your reviews list on the order page shows the current status.
"That link has expired. Please press the review button again."The page with the button was open for more than a day. Reload it and press the button again.

The product page

SymptomWhat to do
The reviews section does not showCheck Enhanced reviews section under Settings → Product page and that reviews are enabled on the product. Some themes, and block themes that show the product details as an accordion, do not print WooCommerce's review template: add the Product reviews block or [wphub_reviews] where the reviews should appear.
I want my theme's review list backSwitch off Enhanced reviews section. Reviews, labels and photos stay; only the layout changes.
The colours do not match the shopThe section uses Review page colour (Settings → Review form), or your WooCommerce email base colour when it is empty.
A visitor cannot vote againOne vote per visitor and review, by design. Guests are recognised by a cookie; a browser that blocks cookies cannot vote. More than 60 votes an hour from one address are refused.
A review shows on the product page but not in the sliderThe slider shows reviews with at least min_rating stars (4 by default) and, with photos="yes" or verified="yes", only those.

Thank-you coupons

SymptomWhat to do
A review earned no couponCheck Settings → Rewards: the coupon is on, it is sent when the review is approved (approve it), Which reviews earn it may require a photo, and with One coupon per order an order earns one coupon only. Reviews you add for a customer never earn one.
The coupon was created but no email arrivedCheck that Review published or Review thank-you coupon is enabled in WooCommerce → Settings → Emails, and the email log. The code is also in the order notes and on the review page.
The customer says the code does not workIt works once, only with the billing email of the order, until it expires, and not together with other coupons when Individual use only is on. Open it from the Rewards tab to see its limits.

Reviews

SymptomWhat to do
A review does not show on the product pageIt is still Pending. Approve it in Products → Reviews. Also check that reviews are enabled on the product.
A review has no Verified Buyer labelThe order must be paid, contain the product and have the review's billing email. Check Settings → Review form → Verified Buyer label, and WooCommerce's setting that shows the verified label.
The customer cannot review a product againOne review per product and order is allowed. If the review was removed, the product becomes open again.

11. FAQ

When are the emails sent?

The initial request goes out when the order reaches an eligible status (Completed by default), after the optional delay. The first reminder follows 5 days after the request and the final reminder 7 days after the first reminder. All the delays are settings.

Will a customer who already reviewed get more emails?

No. Every email is checked again right before it is sent and only lists the products without a review. When every product has a review, the remaining reminders are cancelled.

What happens if an order goes Completed, then On hold, then Completed again?

Nothing is restarted. An order enters the sequence once. An administrator can reset it from the order detail screen.

Can the same email be sent twice by accident?

No. Each email is claimed with an atomic step in the database, so repeated status changes, a retried queue job, parallel workers or a double click cannot send it twice. A bulk action also never repeats an email that was already sent.

Does the plugin approve reviews automatically?

Only if you switch it on. By default reviews are Pending, like any WooCommerce review, and you approve them in the normal review list.

How does Verified Buyer work?

The review gets WooCommerce's own verified-owner flag only when the order exists, is paid, contains the product and has the same billing email as the review. You can show a Verified Buyer badge, WooCommerce's text, or nothing.

Do customers need an account?

No. The link in the email is enough. You can require customers who have an account to sign in first; guests never need one.

Can customers leave a review from their account?

Yes. Customers with an account see a Leave a review button on their orders in My Account → Orders and on the order page while a product still needs a review, and the order page lists every product with its review status. It opens the same private page as the email. Settings → My Account switches both off and changes the button text.

Does the My Account button send any email?

No. An older order without a review request gets one when the button is pressed so that the page can open, but no email is scheduled because of it. An expired link is renewed for the signed-in customer.

Can I send a customer their review link myself?

Yes. Open the order in Review Requests and press Copy link in the Review link box. Renew link makes an expired link work again.

Can I change how the review page looks?

Pick a Review page colour in Settings → Review form, or leave it empty to use your WooCommerce email base colour; your email logo is shown at the top. Preview the review page shows the result with sample products. Developers can override the CSS variables of the page.

Can customers add photos?

Yes, if you switch it on. Only JPG, PNG, GIF and WebP images are accepted, checked by content, within a count and size limit you set.

Can I ask for reviews of orders from before I installed the plugin?

Yes. On WooCommerce → Orders select the completed orders and use Bulk actions → Review request: send initial email. Each order is checked on its own and the emails go out from the background queue.

Can I send an email to one customer by hand?

Yes. Open the order's detail screen (or the Review request box on the order) and press Send now. A repeat of an email that was already sent needs a confirmation.

Does "sent" mean the customer received the email?

No. WordPress can only tell whether it handed the message to your mail system. The log says "Handed to mail system" and never claims delivery or opens. Use an SMTP or email service with delivery logs if you need proof.

Which emails does the plugin send, and can I edit them?

Seven, all in WooCommerce → Settings → Emails: the review request and two reminders, Review published, the thank-you coupon and Reply to a review to the customer, and a Low rating alert to you. Subject, heading, additional content, HTML or plain text and the enable switch work like any WooCommerce email. The logo, sender, stars and what the product rows show are in Review Requests → Settings → Email.

What does the reviews section on the product page show?

The average rating with a bar per star level, a strip of customer photos with a full-screen viewer, filters (stars, with photos, verified buyers), sorting (newest, highest, lowest, most helpful), the reviews with their Verified Buyer label and Was this helpful? votes, and Show more reviews. WooCommerce's review form stays below it.

Can I keep my theme's review list?

Yes. Switch off Enhanced reviews section in Settings → Product page. Everything else, including the emails and the Verified Buyer label, keeps working.

Is it allowed to give a coupon for a review?

Yes, if every review earns it whatever the rating, and rewarded reviews are disclosed. That is how the plugin works: there is no setting to reward only good reviews, and Mark rewarded reviews shows "Received a thank-you coupon for reviewing" under them. Rewarding only positive reviews is not allowed by Google, the FTC and EU consumer law.

Can customers stop the review emails?

Yes. Every request and reminder has a Stop review emails link and the one-click unsubscribe header that Gmail, Yahoo and Outlook show as their own button. The address is never sent review requests again, also not from bulk actions; you see and manage the list under Review Requests → Unsubscribed.

Can I show reviews elsewhere on my site?

Yes, with the blocks or shortcodes: a reviews slider or wall ([wphub_reviews_slider]), a rating badge for the shop or a product ([wphub_reviews_badge]) and the reviews section of any product ([wphub_reviews product="12"]).

Which email brings the most reviews?

Review Requests → Insights shows, for the request and each reminder, how many were sent, how many reviews followed and the share of orders that reviewed, next to the reviews from the My Account button.

Does it work with HPOS and the Cart and Checkout blocks?

Yes. The plugin only uses WooCommerce's order API, the tables never assume an order id is a post id, and it is declared compatible with both.

Does it work with a caching plugin?

The review page sends no-cache headers and is marked as not cacheable. If your host or cache plugin still caches it, exclude URLs containing wphub-review.

Does it slow my site down?

Emails are sent from a background queue, never during a visitor's request. The admin files load only on the plugin's screens and the Orders screens, the review page loads one small stylesheet and script, and the reviews section loads its files only on pages that show it. Its rating summary is cached.

What if WooCommerce or the plugin is deactivated?

Your reviews stay exactly as they are, because they are ordinary WooCommerce reviews. Pending emails pause; when you activate the plugin again, missing queue jobs are re-created.

Does it contact any outside server?

Only wpexpertshub.com for the licence and update check, if you activate a licence. It sends the licence key, your site address and the plugin version, and no customer, order or review data. If you choose Gravatar for reviewer pictures, visitors' browsers load them from gravatar.com; the default initials need no outside service.

How is this different from a review service?

There is no service. The plugin runs on your site, uses your own mail setup and stores everything in your database, so there is no subscription and no third party holding your customers' data.

Does it work without a licence?

Yes. The licence is only for updates.

How do I get support?

Email support@wpexpertshub.com with your order ID, the plugin version and what you see in the email log.

12. Changelog

1.3.0 · 2026-10-26

  • New: reviews section on product pages: rating summary with a bar per star level, customer photos with a full-screen viewer, filters (stars, photos, verified buyers), sorting (newest, highest, lowest, most helpful), Was this helpful? votes and Show more reviews without reloading. Settings → Product page.
  • New: five clickable stars under every product in the review emails; the review page opens with that rating selected.
  • New: Stop review emails link and one-click unsubscribe header (RFC 8058) in every request and reminder, and Review Requests → Unsubscribed. Unsubscribed addresses are never asked again, whatever sends the email.
  • New: thank-you coupons for reviews (Settings → Rewards, off by default): single use, for the order's email only, never depending on the rating, with a disclosure under rewarded reviews.
  • New emails: Review published, Review thank-you coupon, Reply to a review (to the customer) and Low rating alert (to you).
  • New: customers choose how their name is shown with the review (full name, "Maya C.", first name).
  • New: shortcodes and blocks: reviews slider or wall, rating badge, product reviews section.
  • New: Review Requests → Insights: emails and reviews per week, which email brought the reviews, rating distribution, ratings per product.
  • Change: the dashboard shows what needs your attention and four key numbers; each order's three emails appear as a track. Settings are grouped, and options that depend on a switch are dimmed while it is off.
  • Change: the review box in the admin says which email or button a review came from; the email log lists attempts newest first; a cancelled request still lists its products.
  • Fix: deactivating the plugin, Delete all plugin data on uninstall and the reset now really remove the queued review emails (since 1.0.0 the queue jobs stayed behind).
  • Fix: a queued email that runs before its planned time (left over from an earlier plan) waits for that time instead of going out early.
  • Developer: hooks wphub_reviews_unsubscribed, wphub_reviews_reward_coupon, wphub_reviews_reward_created, wphub_reviews_list_page, wphub_reviews_review_card, wphub_reviews_slider_query; template wphub-reviews/product-reviews.php; two new tables (unsubscribe list, votes).

1.2.0 · 2026-10-13

  • New: Leave a review button on the customer's orders in My Account → Orders and on the order page, for the signed-in customer of the order. It opens the same private review page as the email; an order without a review request gets one (no email is sent), and an expired link is renewed.
  • New: Your reviews on the order page in My Account, with the status, stars and a Write a review button for every product.
  • New: Settings → My Account (button and list on or off, button text).
  • New: redesigned review page: order number and progress, star words, photo previews and checks before sending, an edit view for pending reviews, a thank-you screen, Back to your order, dark mode and a better phone layout.
  • New: review page colour (default: the WooCommerce email base colour) and a preview of the review page with sample products.
  • New: the customer's review link on the order detail screen with Copy link and Renew link.
  • New: dashboard row with the average rating, the review rate and where reviews come from.
  • Change: the settings sections use the same pill style as the tabs.
  • Fix: themes with a narrow Actions column in the orders list make room for the review button instead of cutting it off.
  • Developer: filter wphub_reviews_account_context; review meta _wphub_reviews_channel.

1.1.1 · 2026-10-11

  • Fix: review request and reminder emails never carry an attachment. Invoice or packing-slip plugins that attach PDFs to customer emails can no longer add their files to a review email.

1.1.0 · 2026-10-10

  • New: when an administrator adds a review without an order number, a Verified Buyer checkbox marks it as a Verified Buyer review, recorded as set by the administrator.
  • Fix: the customer email is optional when an administrator adds a review without an order (1.0.1).

1.0.0 · 2026-10-10

  • First release.
  • Automatic review requests when an order is completed, with a reminder after 5 days and a final reminder 7 days later, all configurable.
  • Three native WooCommerce emails with preview, test email, logo and sender settings.
  • Private, accessible review page with ratings, optional titles and photos, spam protection and duplicate prevention.
  • Pending WooCommerce reviews, Verified Buyer label based on the real order, and request status that follows moderation.
  • Review Requests dashboard, order detail, email log, CSV export and tools.
  • Orders screen column, bulk actions and an order meta box, on HPOS and classic storage.
  • Add a review on behalf of a customer, marked as entered by an administrator.
  • Personal data export and erase, log retention and a clean uninstall.
  • Hooks for developers: wphub_reviews_order_problem, wphub_reviews_product_problem, wphub_reviews_review_created and wphub_reviews_email_sent.

13. Support

Email support@wpexpertshub.com and a person will help. Please include:

  • Your order ID (from your purchase email or My Account on wpexpertshub.com).
  • The plugin version (shown on Plugins) and your WordPress, WooCommerce and PHP versions.
  • What you expected, what happened and what you already tried.
  • The relevant rows from Review Requests → Email log and the error text of a failed email.
  • Whether you use SMTP or an email service, and whether Action Scheduler or WP-Cron runs your queue.

Please do not send passwords or customer data. Support never needs them.