{"id":344004,"date":"2026-07-22T15:39:46","date_gmt":"2026-07-22T15:39:46","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/australcode-product-reviews-for-woocommerce\/"},"modified":"2026-10-22T14:08:57","modified_gmt":"2026-10-22T14:08:57","slug":"australcode-product-reviews","status":"publish","type":"plugin","link":"https:\/\/uz.wordpress.org\/plugins\/australcode-product-reviews\/","author":23459699,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"0.7.7","stable_tag":"0.7.7","tested":"7.1.4","requires":"6.5","requires_php":"8.1","requires_plugins":null,"header_name":"Australcode Product Reviews & Review Reminders for WooCommerce","header_author":"Australcode","header_description":"Self-hosted product reviews for WooCommerce: reminders from your own server with no monthly limit, configurable per-country consent, photos, structured data and a verified-buyer badge. Your reviews live in your own database.","assets_banners_color":"0f1110","last_updated":"2026-10-22 14:08:57","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/australcode.io\/product-reviews\/","header_author_uri":"https:\/\/australcode.io","rating":0,"author_block_rating":0,"active_installs":0,"downloads":704,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"0.3.3":{"tag":"0.3.3","author":"australcode","date":"2026-07-22 14:51:28","revision":3618820},"0.3.4":{"tag":"0.3.4","author":"australcode","date":"2026-07-24 23:00:32","revision":3622001},"0.3.5":{"tag":"0.3.5","author":"australcode","date":"2026-07-24 23:47:23","revision":3622023},"0.4.0":{"tag":"0.4.0","author":"australcode","date":"2026-07-30 21:21:15","revision":3629124},"0.4.1":{"tag":"0.4.1","author":"australcode","date":"2026-07-30 23:10:10","revision":3629198},"0.4.2":{"tag":"0.4.2","author":"australcode","date":"2026-08-07 19:34:15","revision":3638260},"0.5.0":{"tag":"0.5.0","author":"australcode","date":"2026-08-11 02:35:48","revision":3641282},"0.5.1":{"tag":"0.5.1","author":"australcode","date":"2026-08-15 16:30:45","revision":3648844},"0.6.0":{"tag":"0.6.0","author":"australcode","date":"2026-10-21 16:24:20","revision":3758704},"0.7.4":{"tag":"0.7.4","author":"australcode","date":"2026-10-22 05:18:24","revision":3759334},"0.7.5":{"tag":"0.7.5","author":"australcode","date":"2026-10-22 12:57:28","revision":3759938},"0.7.6":{"tag":"0.7.6","author":"australcode","date":"2026-10-22 13:35:23","revision":3759991},"0.7.7":{"tag":"0.7.7","author":"australcode","date":"2026-10-22 14:08:57","revision":3760039}},"upgrade_notice":{"0.7.7":"<p>A small visual fix on the dashboard. No action required.<\/p>","0.7.6":"<p>A small text fix in the review form for an order. No action required.<\/p>","0.7.5":"<p>Fixes: the dashboard no longer counts the store&#039;s replies as reviews, Pro gallery photos fill their tiles and the widget builder&#039;s shortcode box fits its card. No action required.<\/p>","0.7.4":"<p>Fixes: no rating number on product pages while the plugin is turned off, no repeated product name in the block and page builder lists of a single product, and the Pro screen is translated again. No action required.<\/p>","0.7.3":"<p>Important fix for sites behind a page cache (such as Kinsta): the per-order review form is no longer cached. Update before sending review reminders.<\/p>","0.7.2":"<p>Readable button text with light accent colours, and own moderation rules that respect other plugins&#039; holds. No action required.<\/p>","0.7.1":"<p>Review form stars work in Bricks and block themes, reminders use your WooCommerce email template, and a compact chip style for the rating filters. No action required.<\/p>","0.7.0":"<p>Migrate from Site Reviews with <code>wp acprv import site-reviews<\/code> (dry-run first), store reviews, a per-order review form linked from the reminder, moderation rules with team alerts, search, &quot;Most helpful&quot; sorting and store replies. Review the new settings after updating; all new behaviour is off or unchanged by default except the per-order form link in reminders.<\/p>","0.6.1":"<p>Maintenance release: safer database queries and a composer.json in the package, both flagged by Plugin Check. No change in behaviour and no action required.<\/p>","0.6.0":"<p>Privacy and trust release: one-click unsubscribe, export\/erase personal data, a live verified badge and a coupon for verified buyers only. Review filters, &quot;Show more&quot; and a photo lightbox. Requires PHP 8.1. Check your consent settings after updating.<\/p>","0.5.1":"<p>Cosmetic and usability fixes. The licence page now shows its plan list as proper bullets, the reminder email accepts a pasted hex colour, and importing a CSV shows which file you picked. No action required.<\/p>","0.5.0":"<p>Fixes two structured-data bugs: the plugin could send Google a GTIN that WooCommerce had deliberately rejected, and could drop your brand&#039;s logo. If your Pro license has lapsed, the plugin now says so and links you to renew. No action required.<\/p>","0.4.2":"<p>The plugin now appears in your list under a longer name: same plugin, same settings, same reviews. Also fixes unreadable disabled fields, a helpful vote that could fail silently, and empty states. Free support now goes through the WordPress.org forum.<\/p>","0.4.1":"<p>Accessibility and maintenance fix: the &quot;Was this helpful?&quot; button on your product pages is now large enough to tap on phones, and CSV import\/export stops writing deprecation warnings to your log on PHP 8.4+. No action required.<\/p>","0.4.0":"<p>Spanish now ships with the free version too. Fixes several display bugs: on block themes the reviews could sit outside your content column, the sorting buttons were invisible on dark themes, and tap targets on phones were too small. No action required.<\/p>","0.3.5":"<p>Polish release. If you bought Pro and had not installed the Pro version yet, the plugin now tells you so instead of offering the upgrade again. No action required.<\/p>","0.3.4":"<p>Nothing to do unless you just bought Pro. In that case, install the Pro download to get its features \u2014 the free version no longer reports them as active before the Pro version is running.<\/p>","0.3.3":"<p>Housekeeping: a cleaner split between the free and Pro versions, and translations now delivered by WordPress.org.<\/p>","0.3.1":"<p>Internal housekeeping only. Nothing changes for you, and the Spanish translations are unaffected.<\/p>","0.3.0":"<p>Two features move from Pro to free: automatic review discount coupons and the Google Shopping reviews feed. Nothing you already use goes away. Percentage coupons are now capped at 100, and there is now a &quot;Contact Us&quot; screen to reach support. No action required.<\/p>","0.2.1":"<p>Polish release: the License screen now lists what your plan includes, the menu entry reads &quot;License&quot; once Pro is active, and the upgrade screens are fully translated into Spanish. No action required.<\/p>","0.2.0":"<p>Adds a visual Widget builder, two new shortcodes ([acprv_summary] and [acprv_form]) and per-instance display options for the reviews list, block and page-builder widgets. No action required.<\/p>","0.1.0":"<p>First public release of Australcode Product Reviews for WooCommerce.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3618820,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3618820,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3618820,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3618820,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":{"australcode\/review-summary":{"$schema":"https:\/\/schemas.wp.org\/trunk\/block.json","apiVersion":3,"name":"australcode\/review-summary","title":"Review summary","category":"woocommerce","icon":"chart-bar","description":"Average rating and star distribution of a product.","keywords":["reviews","rating","summary"],"textdomain":"australcode-product-reviews","attributes":{"product":{"type":"number","default":0},"type":{"type":"string","default":"product"}},"supports":{"html":false,"align":["wide","full"],"spacing":{"margin":true}},"editorScript":"file:.\/index.js"},"australcode\/reviews":{"$schema":"https:\/\/schemas.wp.org\/trunk\/block.json","apiVersion":3,"name":"australcode\/reviews","title":"Product reviews","category":"woocommerce","icon":"star-filled","description":"Approved reviews from your store as a grid, list or compact list.","keywords":["reviews","ratings","testimonials"],"textdomain":"australcode-product-reviews","attributes":{"product":{"type":"number","default":0},"type":{"type":"string","default":"product"},"count":{"type":"number","default":6},"style":{"type":["string","object"]},"layout":{"type":"string","default":""},"min":{"type":"number","default":0},"columns":{"type":"number","default":0},"orderby":{"type":"string","default":"date"},"order":{"type":"string","default":"desc"},"showDate":{"type":"boolean","default":true},"showPhotos":{"type":"boolean"},"showVotes":{"type":"boolean","default":false},"showProduct":{"type":"boolean"},"showVerified":{"type":"boolean"},"heading":{"type":"string","default":""},"filters":{"type":"boolean","default":false},"pagination":{"type":"string","default":"none"},"perPage":{"type":"number","default":0},"search":{"type":"boolean","default":false},"sort":{"type":"boolean","default":false},"emptyHide":{"type":"boolean","default":false}},"supports":{"html":false,"align":["wide","full"],"spacing":{"margin":true}},"editorScript":"file:.\/index.js"},"australcode\/review-form":{"$schema":"https:\/\/schemas.wp.org\/trunk\/block.json","apiVersion":3,"name":"australcode\/review-form","title":"Review button","category":"woocommerce","icon":"edit","description":"A button that takes shoppers to the review form of a product.","keywords":["reviews","rating","write","form"],"textdomain":"australcode-product-reviews","attributes":{"product":{"type":"number","default":0},"label":{"type":"string","default":""}},"supports":{"html":false,"align":["wide","full"],"spacing":{"margin":true}},"editorScript":"file:.\/index.js"}},"tagged_versions":["0.3.3","0.3.4","0.3.5","0.4.0","0.4.1","0.4.2","0.5.0","0.5.1","0.6.0","0.7.4","0.7.5","0.7.6","0.7.7"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3760087,"resolution":"1","location":"assets","locale":"","width":2560,"height":1440},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3760087,"resolution":"2","location":"assets","locale":"","width":2560,"height":1440},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3760087,"resolution":"3","location":"assets","locale":"","width":2560,"height":1440},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3760087,"resolution":"4","location":"assets","locale":"","width":2560,"height":1440},"screenshot-5.png":{"filename":"screenshot-5.png","revision":3760087,"resolution":"5","location":"assets","locale":"","width":2560,"height":1440},"screenshot-6.png":{"filename":"screenshot-6.png","revision":3760087,"resolution":"6","location":"assets","locale":"","width":2560,"height":1440},"screenshot-7.png":{"filename":"screenshot-7.png","revision":3760087,"resolution":"7","location":"assets","locale":"","width":2560,"height":1440}},"screenshots":{"1":"Reviews on the product page \u2014 rating summary, sorting, verified-buyer badges, photo reviews and helpful votes.","2":"Dashboard \u2014 your reviews at a glance: average rating, moderation queue and reminder activity.","3":"Self-hosted review reminders \u2014 sent from your own server with no monthly cap, with our recommendation for the trigger and the delay.","4":"Widget builder \u2014 configure the reviews widget, preview it live and copy the shortcode.","5":"Import from another plugin: the columns are detected for you, editable, and previewed before anything is written. Export anytime \u2014 your data is yours.","6":"Geo-aware consent \u2014 pick the countries where customers see the opt-in at checkout (EEA + UK by default); everyone else gets the reminder without being asked.","7":"Style panel \u2014 card style, corner shape and accent colours, so the reviews match your theme."}},"plugin_section":[],"plugin_tags":[25588,149759,5431,143213,14539],"plugin_category":[],"plugin_contributors":[265691],"plugin_business_model":[],"class_list":["post-344004","plugin","type-plugin","status-publish","hentry","plugin_tags-customer-reviews","plugin_tags-photo-reviews","plugin_tags-product-reviews","plugin_tags-review-reminder","plugin_tags-woocommerce-reviews","plugin_contributors-australcode","plugin_committers-australcode"],"banners":{"banner":"https:\/\/ps.w.org\/australcode-product-reviews\/assets\/banner-772x250.png?rev=3618820","banner_2x":"https:\/\/ps.w.org\/australcode-product-reviews\/assets\/banner-1544x500.png?rev=3618820","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/australcode-product-reviews\/assets\/icon-128x128.png?rev=3618820","icon_2x":"https:\/\/ps.w.org\/australcode-product-reviews\/assets\/icon-256x256.png?rev=3618820","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/australcode-product-reviews\/assets\/screenshot-1.png?rev=3760087","caption":"Reviews on the product page \u2014 rating summary, sorting, verified-buyer badges, photo reviews and helpful votes."},{"src":"https:\/\/ps.w.org\/australcode-product-reviews\/assets\/screenshot-2.png?rev=3760087","caption":"Dashboard \u2014 your reviews at a glance: average rating, moderation queue and reminder activity."},{"src":"https:\/\/ps.w.org\/australcode-product-reviews\/assets\/screenshot-3.png?rev=3760087","caption":"Self-hosted review reminders \u2014 sent from your own server with no monthly cap, with our recommendation for the trigger and the delay."},{"src":"https:\/\/ps.w.org\/australcode-product-reviews\/assets\/screenshot-4.png?rev=3760087","caption":"Widget builder \u2014 configure the reviews widget, preview it live and copy the shortcode."},{"src":"https:\/\/ps.w.org\/australcode-product-reviews\/assets\/screenshot-5.png?rev=3760087","caption":"Import from another plugin: the columns are detected for you, editable, and previewed before anything is written. Export anytime \u2014 your data is yours."},{"src":"https:\/\/ps.w.org\/australcode-product-reviews\/assets\/screenshot-6.png?rev=3760087","caption":"Geo-aware consent \u2014 pick the countries where customers see the opt-in at checkout (EEA + UK by default); everyone else gets the reminder without being asked."},{"src":"https:\/\/ps.w.org\/australcode-product-reviews\/assets\/screenshot-7.png?rev=3760087","caption":"Style panel \u2014 card style, corner shape and accent colours, so the reviews match your theme."}],"raw_content":"<!--section=description-->\n<p><strong>Your reviews live in your own database, and the review reminder emails leave from your own server \u2014 nothing to cap, nothing to cut off.<\/strong><\/p>\n\n<p>Australcode Product Reviews enhances the native WooCommerce reviews and sends automatic review reminder emails from your own site, through Action Scheduler.<\/p>\n\n<p>Two things follow from that. <strong>The consent opt-in can be geo-aware<\/strong>: ask for it where the GDPR asks for it (by default the EEA \u2014 EU plus Iceland, Liechtenstein and Norway \u2014 and the UK) and skip it where no consent was ever required, such as Chile and Latin America. And <strong>the reviews look right on your theme out of the box<\/strong>, on light <em>and<\/em> dark themes, with no setup.<\/p>\n\n<p><strong>Switching from a review service?<\/strong> Import your reviews from Judge.me, CusRev, Yotpo or any CSV \u2014 with their approval status, titles, photos and store replies \u2014 and export them again whenever you want.<\/p>\n\n<h4>Why it is different<\/h4>\n\n<ul>\n<li><strong>Truly self-hosted<\/strong> \u2014 reminders are sent from your server with Action Scheduler. No monthly cap on invitations and no third-party account required.<\/li>\n<li><strong>You own your data<\/strong> \u2014 reviews are stored as native WooCommerce reviews in your database. Uninstalling the plugin never deletes them.<\/li>\n<li><strong>Geo-aware consent<\/strong> \u2014 require the opt-in only where the law asks for it, and respect it everywhere: a customer who leaves it unchecked never gets a reminder.<\/li>\n<li><strong>Privacy tools built in<\/strong> \u2014 every reminder carries a one-click unsubscribe link, and WordPress's \"Export \/ Erase personal data\" tools cover reminders, review photos, review coupons and the reviews themselves.<\/li>\n<li><strong>Honest verified badge<\/strong> \u2014 checked live against paid orders, and only when the reviewer proved the email is theirs (a customer account, or the link in the reminder email). A refund removes it.<\/li>\n<li><strong>Looks right on your theme, out of the box<\/strong> \u2014 the reviews inherit your theme's font and colours, and hold up on light <em>and<\/em> dark themes. Keyboard and screen-reader friendly.<\/li>\n<li><strong>Lightweight<\/strong> \u2014 assets load only where reviews are shown, and the storefront script needs no jQuery.<\/li>\n<li><strong>Fully translatable, Spanish included<\/strong> \u2014 Spanish (es_CL and es_ES) ships with the plugin for free and paid users alike.<\/li>\n<li><strong>Hook-based integration, no template override<\/strong> \u2014 it never overwrites WooCommerce templates.<\/li>\n<\/ul>\n\n<h4>Free features<\/h4>\n\n<ul>\n<li>Self-hosted review reminder after purchase (no monthly limit), re-checked right before sending: cancelled or refunded orders, unsubscribed customers and products that no longer accept reviews are skipped<\/li>\n<li>Configurable geo-aware consent (per country), in the classic and the block checkout<\/li>\n<li>One-click unsubscribe (RFC 8058) in every reminder<\/li>\n<li>Photo reviews \u2014 off by default; photos stay private until the review is approved, and their location data (EXIF\/GPS) is removed<\/li>\n<li>Honest verified-buyer badge<\/li>\n<li>Rating summary whose bars filter the list, a \"with photos\" filter, \"Show more reviews\" without reloading, and a photo lightbox that shows each photo next to its review<\/li>\n<li>Helpful votes, one per person<\/li>\n<li>Grid, list and compact layouts via shortcode, Gutenberg blocks and Bricks\/Elementor\/Divi widgets<\/li>\n<li>Richer JSON-LD product schema \u2014 fills in your product's brand when nothing else did, without overwriting your theme or SEO plugin<\/li>\n<li>Style panel: card style, corner shape and accent\/star\/badge colours that adapt to your theme<\/li>\n<li><strong>Thank-you coupon for reviews<\/strong> \u2014 a WooCommerce coupon for verified buyers, one per product, never tied to the star rating, and every review that earned one is labeled as such<\/li>\n<li><strong>Google Shopping product reviews feed<\/strong> \u2014 publish your ratings so they can appear in Google Shopping<\/li>\n<li><strong>Import and export<\/strong> \u2014 from Judge.me, CusRev, Yotpo or any CSV (comma, semicolon or tab; UTF-8 or Windows-1252), in the background for large files; export in the same format, with an Excel option for comma-decimal locales<\/li>\n<\/ul>\n\n<h4>Pro (scale and automation)<\/h4>\n\n<p>The free plugin is fully usable on its own. Pro adds:<\/p>\n\n<ul>\n<li>Follow-up reminders \u2014 up to 3 more emails (the 2nd, 3rd and 4th) to customers who have not reviewed yet<\/li>\n<li>Visual email editor with test sending<\/li>\n<li>Carousel and photo gallery layouts for the reviews widget<\/li>\n<\/ul>\n\n<p>Pro is sold by number of sites: 1 site $49\/year or $147 lifetime \u00b7 5 sites $129\/year or $387 lifetime \u00b7 unlimited sites $229\/year or $599 lifetime.<\/p>\n\n<p><a href=\"https:\/\/australcode.io\/product-reviews\/\">Get Pro \u2192<\/a><\/p>\n\n<h3>External services<\/h3>\n\n<p>This plugin connects to Freemius for licensing, software updates and (optionally) anonymous usage diagnostics. Freemius is the Merchant of Record for the paid version of Australcode Product Reviews.<\/p>\n\n<p>When it connects:<\/p>\n\n<ul>\n<li>On activation you may opt in to share basic, non-sensitive environment data. This opt-in is <strong>skippable<\/strong> \u2014 the free version is 100% functional without opting in.<\/li>\n<li>For the paid version, the plugin contacts Freemius to validate your license and deliver automatic updates.<\/li>\n<li>The \"Contact Us\" menu entry opens the Freemius support form. In the free version it is an external link to freemius.com, and opening it already passes your site URL, your site's login URL, the current admin page URL and this plugin's public identifiers to Freemius, so the form arrives with your context. In the paid version the same form is embedded inside your dashboard instead. Whatever you then type into the form \u2014 your name, email address and message, plus its optional fields, which include WordPress and FTP credentials you may choose to share so we can reproduce a problem \u2014 is sent to Freemius when you submit it, so they can route it to us. Those credential fields are optional and blank by default. If you never open \"Contact Us\", none of this is sent.<\/li>\n<\/ul>\n\n<p>What is sent: site URL, WordPress and PHP versions, active plugin\/theme information and \u2014 only if you opt in or purchase \u2014 your license key and account email. <strong>Your store data and your customers' reviews are never sent to Freemius or any other third party<\/strong>: reviews stay in your own database and reminders are sent from your own server.<\/p>\n\n<ul>\n<li>Service provider: Freemius, Inc. \u2014 https:\/\/freemius.com<\/li>\n<li>Terms of Service: https:\/\/freemius.com\/terms\/<\/li>\n<li>Privacy Policy: https:\/\/freemius.com\/privacy\/<\/li>\n<\/ul>\n\n<!--section=installation-->\n<ol>\n<li>Make sure WooCommerce is installed and active.<\/li>\n<li>Upload the plugin to <code>\/wp-content\/plugins<\/code> or install it from the Plugins screen in WordPress.<\/li>\n<li>Activate it from the Plugins screen.<\/li>\n<li>Open \"Australcode Product Reviews\" in the WordPress admin menu to configure it. Your reviews and reminders never leave your site.<\/li>\n<\/ol>\n\n<p>There is no opt-in screen on activation and no feature depends on one. To share diagnostic data with us, use the \"Opt In\" link under the plugin name on the Plugins screen.<\/p>\n\n<p>If you bought Pro: activating your license does not replace the files already on your site. Download the Pro version from your account, install it over the free one, and the Pro features appear. The License screen in the plugin links straight to that download.<\/p>\n\n<p>Documentation: https:\/\/australcode.io\/product-reviews\/<\/p>\n\n<!--section=faq-->\n<dl>\n<dt id=\"can%20i%20import%20my%20existing%20reviews%3F\"><h3>Can I import my existing reviews?<\/h3><\/dt>\n<dd><p>Yes. Export them as a CSV from Judge.me, CusRev, Yotpo or another review plugin and import them under <strong>Australcode Product Reviews \u2192 Import<\/strong>. The columns are detected for you and previewed before anything is written; reviews are matched to your published products by SKU, product slug, ID or name, and keep their approval status, titles, photos and store replies. Photos are downloaded from the URLs in your file into your Media Library. Large files continue in the background.<\/p><\/dd>\n<dt id=\"will%20i%20lose%20my%20reviews%20if%20i%20deactivate%20or%20uninstall%20the%20plugin%3F\"><h3>Will I lose my reviews if I deactivate or uninstall the plugin?<\/h3><\/dt>\n<dd><p>No. Reviews are stored as native WooCommerce reviews in your own database. Uninstalling only removes the plugin's own data, and only if you tick that option in Settings.<\/p><\/dd>\n<dt id=\"is%20it%20really%20free%3F%20what%20does%20the%20paid%20version%20add%3F\"><h3>Is it really free? What does the paid version add?<\/h3><\/dt>\n<dd><p>The core is fully functional and free, with no limits: reminders, consent, unsubscribe and privacy tools, photos, the verified badge, structured data, import\/export, review coupons and the Google Shopping reviews feed. Pro adds follow-up reminders, the visual email editor and the carousel and photo gallery layouts.<\/p><\/dd>\n<dt id=\"i%20bought%20pro.%20why%20do%20i%20still%20see%20the%20free%20version%3F\"><h3>I bought Pro. Why do I still see the free version?<\/h3><\/dt>\n<dd><p>A license unlocks the Pro download; it does not replace the files already on your site. Install the Pro version \u2014 you get it right after activating your license, and you can download it any time from your account \u2014 and the Pro features appear. Until you do, the plugin keeps running as the free version. The License screen tells you so and links straight to the download.<\/p><\/dd>\n<dt id=\"is%20there%20a%20monthly%20limit%20on%20reminders%3F\"><h3>Is there a monthly limit on reminders?<\/h3><\/dt>\n<dd><p>No. Reminders are sent from your own server, so there is no monthly cap on how many you send.<\/p><\/dd>\n<dt id=\"can%20customers%20unsubscribe%20from%20the%20reminders%3F\"><h3>Can customers unsubscribe from the reminders?<\/h3><\/dt>\n<dd><p>Yes. Every reminder has an unsubscribe link in the email and a one-click unsubscribe header that mail apps show as a button. An unsubscribed email never receives another reminder from your store; the plugin keeps only a one-way hash of it for that purpose.<\/p><\/dd>\n<dt id=\"will%20it%20slow%20down%20my%20store%3F\"><h3>Will it slow down my store?<\/h3><\/dt>\n<dd><p>No. Assets load only on pages where reviews are shown, and the storefront script needs no jQuery.<\/p><\/dd>\n<dt id=\"does%20it%20work%20with%20page%20caching%20%28kinsta%2C%20wp%20engine%2C%20litespeed%2C%20wp%20rocket%29%3F\"><h3>Does it work with page caching (Kinsta, WP Engine, LiteSpeed, WP Rocket)?<\/h3><\/dt>\n<dd><p>Yes. Lists, votes and reports are safe to cache: the \"you already voted\" state is filled in by the browser. The per-order review form sends <code>Cache-Control: no-store<\/code> and <code>DONOTCACHEPAGE<\/code>, but hosts with their own server-side page cache can ignore both: exclude the form address (<code>\/review\/<\/code> or the slug you set, with everything under it) and URLs with <code>acprv-open=<\/code> (the email open pixel) from the page cache. On Kinsta, ask support or add them in MyKinsta &gt; Tools &gt; Cache.<\/p>\n\n<p>The form takes the private link out of the address bar on the first visit: it keeps it in a cookie limited to the form address and shows <code>\/review\/<\/code> instead. If the browser blocks cookies, the form still works with the link in the address.<\/p><\/dd>\n<dt id=\"do%20my%20reviews%20depend%20on%20an%20external%20service%3F\"><h3>Do my reviews depend on an external service?<\/h3><\/dt>\n<dd><p>No. Reviews are native WooCommerce reviews stored in your database. The plugin does not send your data to any third party.<\/p><\/dd>\n<dt id=\"does%20it%20help%20me%20stay%20gdpr%20compliant%3F\"><h3>Does it help me stay GDPR compliant?<\/h3><\/dt>\n<dd><p>Review reminders are marketing emails, so under the GDPR (and the UK GDPR) you need consent before sending them to shoppers in the EEA and the UK. A single global opt-in also asks shoppers in countries where no consent was ever required, and every one of those prompts is a review you do not get.<\/p>\n\n<p>The opt-in checkbox appears only for customers whose billing country is on your list (by default the EEA \u2014 EU plus Iceland, Liechtenstein and Norway \u2014 and the UK) and for orders without a billing country; edit the list under <strong>Australcode Product Reviews \u2192 Settings<\/strong>. A customer who sees it and leaves it unchecked never receives reminders. In the Checkout block this needs WooCommerce 9.9 or later; on 8.9\u20139.8 the checkbox is shown to everyone and respected everywhere; below 8.9 the Checkout block cannot show it.<\/p>\n\n<p>Every reminder carries an unsubscribe link, the plugin registers with WordPress's \"Export Personal Data\" and \"Erase Personal Data\" tools, suggests a paragraph for your privacy policy, and anonymizes reminder records three years after they close. Your reviews and your customers' data never leave your site.<\/p>\n\n<p>This is a technical feature, not legal advice.<\/p><\/dd>\n<dt id=\"who%20gets%20the%20verified-buyer%20badge%3F\"><h3>Who gets the verified-buyer badge?<\/h3><\/dt>\n<dd><p>A review gets it when the author bought the product in your store (a paid order, checked live) and proved the email is theirs: by being logged in to a customer account, or by writing the review from the link in the reminder email. A refund removes the badge. While the plugin's badge is on, WooCommerce's own \"(verified owner)\" label is hidden, so a review never shows two.<\/p><\/dd>\n<dt id=\"how%20does%20the%20review%20coupon%20work%3F\"><h3>How does the review coupon work?<\/h3><\/dt>\n<dd><p>Turn it on under <strong>Australcode Product Reviews \u2192 Settings \u2192 Review discount<\/strong>. By default only verified buyers get it, one per product and customer, and never depending on the star rating. Every review that earned a coupon is labeled \"Received a discount for reviewing\" and left out of the Google Shopping feed, as consumer-protection rules require (FTC 16 CFR \u00a7465).<\/p><\/dd>\n<dt id=\"is%20it%20compatible%20with%20hpos%20%28high-performance%20order%20storage%29%3F\"><h3>Is it compatible with HPOS (High-Performance Order Storage)?<\/h3><\/dt>\n<dd><p>Yes. HPOS compatibility is declared.<\/p><\/dd>\n<dt id=\"will%20the%20reviews%20match%20my%20theme%3F\"><h3>Will the reviews match my theme?<\/h3><\/dt>\n<dd><p>Yes, out of the box. The reviews inherit your theme's font, and their borders and surfaces derive from your theme's own text colour, so they hold up on light and dark themes with no setup.<\/p>\n\n<p>You can fine-tune it under <strong>Australcode Product Reviews \u2192 Settings \u2192 Display style<\/strong>: accent, star and badge colours, card style and corner shape. Leave a colour empty to keep your theme's own.<\/p><\/dd>\n<dt id=\"which%20shortcodes%20are%20there%3F\"><h3>Which shortcodes are there?<\/h3><\/dt>\n<dd><ul>\n<li><code>[acprv_reviews]<\/code> \u2014 the review list. Attributes: <code>product<\/code>, <code>count<\/code>, <code>style<\/code> (<code>grid<\/code>, <code>list<\/code> or <code>compact<\/code>; Pro adds <code>carousel<\/code> and <code>gallery<\/code>), <code>columns<\/code>, <code>min<\/code>, <code>orderby<\/code>, <code>order<\/code>, <code>heading<\/code>, <code>filters=\"yes\"<\/code> (rating and photo filters for shoppers), <code>pagination=\"load_more\"<\/code> with <code>per_page<\/code>, <code>show_date<\/code>, <code>show_photos<\/code>, <code>show_votes<\/code>, <code>show_product<\/code>, <code>show_verified<\/code>, and <code>empty=\"hide\"<\/code> (print nothing, not even the heading, when there are no reviews to show).<\/li>\n<li><code>[acprv_rating]<\/code> \u2014 a compact rating (stars, average with one decimal and the number of reviews) for product cards and product pages built with a page builder. Attributes: <code>product<\/code> (<code>current<\/code> = the product in the loop or on the page, or an ID), <code>count=\"no\"<\/code> to hide the number of reviews, <code>link=\"#reviews\"<\/code> to link the number of reviews, and <code>empty=\"stars\"<\/code> to show empty stars on products without reviews (by default nothing is printed). It works on shop and category pages too.<\/li>\n<li><code>[acprv_summary]<\/code> \u2014 the rating summary of a product.<\/li>\n<li><code>[acprv_form]<\/code> \u2014 a button that takes shoppers to the review form of a product (<code>product<\/code>, <code>label<\/code>).<\/li>\n<\/ul>\n\n<p>The Widget builder under <strong>Australcode Product Reviews \u2192 Widget builder<\/strong> builds the shortcode with a live preview.<\/p><\/dd>\n<dt id=\"can%20i%20restyle%20the%20reviews%20with%20css%3F\"><h3>Can I restyle the reviews with CSS?<\/h3><\/dt>\n<dd><p>Yes. Every surface exposes public CSS custom properties. Add this to your theme's Additional CSS and adjust what you need:<\/p>\n\n<pre><code>.acfk.acprv-scope {\n    --acprv-accent: #0e7a5f;  \/* highlighted average, voted state *\/\n    --acprv-star: #f5a623;    \/* stars and distribution bars *\/\n    --acprv-star-empty: #999; \/* the unfilled part of a rating *\/\n    --acprv-badge: #1a7f37;   \/* verified-purchase badge *\/\n    --acprv-card-bg: #ffffff; \/* review card background *\/\n    --acprv-cols: 3;          \/* fixed grid columns; only when the shortcode\n                                 sets columns=\"1..4\" *\/\n}\n<\/code><\/pre>\n\n<p>To follow your theme's palette instead of a fixed colour, point the variable at one of the presets your theme declares \u2014 for example <code>--acprv-accent: var(--wp--preset--color--contrast);<\/code> on Twenty Twenty-Five.<\/p>\n\n<p>Shape and spacing come from the shared Australcode design kit and are overridden the same way: <code>--acfk-radius<\/code>, <code>--acfk-gap<\/code>, <code>--acfk-hairline<\/code>.<\/p><\/dd>\n<dt id=\"can%20i%20change%20the%20markup%20or%20the%20behaviour%20from%20my%20own%20code%3F\"><h3>Can I change the markup or the behaviour from my own code?<\/h3><\/dt>\n<dd><p>Yes. Every hook uses the <code>australcode_product_reviews_<\/code> prefix. The short <code>acprv_<\/code> names of 0.5 still work and are deprecated.<\/p>\n\n<p>Storefront filters:<\/p>\n\n<ul>\n<li><code>australcode_product_reviews_widget_atts<\/code> \u2014 attributes of a widget (shortcode, block or builder) before it renders.<\/li>\n<li><code>australcode_product_reviews_widget_data<\/code> \u2014 the reviews about to be rendered, to reorder or drop some.<\/li>\n<li><code>australcode_product_reviews_widget_html<\/code> \u2014 the final HTML of the list (escape anything you add).<\/li>\n<li><code>australcode_product_reviews_wrapper_classes<\/code> \u2014 classes of the list container.<\/li>\n<li><code>australcode_product_reviews_empty_message<\/code> \u2014 the message of an empty list (<code>''<\/code> prints nothing).<\/li>\n<li><code>australcode_product_reviews_layout_renderers<\/code> and <code>australcode_product_reviews_layout_options<\/code> \u2014 register your own layout and offer it in the block, the Widget builder and the page builders.<\/li>\n<li><code>australcode_product_reviews_verified_badge_label<\/code>, <code>australcode_product_reviews_verified_badge_title<\/code> and <code>australcode_product_reviews_verified_badge_classes<\/code> \u2014 text, tooltip and classes of the verified badge (deprecated aliases: <code>acprv_verified_badge_label<\/code>, <code>acprv_verified_badge_title<\/code>, <code>acprv_verified_badge_classes<\/code>).<\/li>\n<li><code>australcode_product_reviews_review_form_classes<\/code> and <code>australcode_product_reviews_review_form_submit_classes<\/code> \u2014 classes of the review form and its button (deprecated aliases: <code>acprv_review_form_classes<\/code>, <code>acprv_review_form_submit_classes<\/code>).<\/li>\n<li><code>australcode_product_reviews_incentive_label<\/code> \u2014 the \"Received a discount for reviewing\" label.<\/li>\n<li><code>australcode_product_reviews_vote_rate_limit<\/code> \u2014 new helpful votes allowed per visitor and hour.<\/li>\n<li><code>australcode_product_reviews_card_actions( $actions, $comment, $atts )<\/code> \u2014 HTML of the buttons at the foot of each review card in a list (the helpful vote and \"Report\" buttons come through here; escape anything you add).<\/li>\n<li><code>australcode_product_reviews_store_label( $label )<\/code> \u2014 the \"Store\" label shown instead of a product name on store reviews, in lists that mix products and the store.<\/li>\n<li><code>australcode_product_reviews_store_reply_label( $label )<\/code> \u2014 the \"Reply from \" label above the store's replies to a review.<\/li>\n<li><code>australcode_product_reviews_is_store_reply( $is, $comment )<\/code> \u2014 whether a reply to a review counts as the store's reply (by default, one written by a user who can moderate comments, or imported as the source's reply).<\/li>\n<li><code>australcode_product_reviews_gallery_more_url( $url )<\/code> \u2014 where the \"+N\" tile of the Pro gallery layout links to (default <code>#reviews<\/code>).<\/li>\n<\/ul>\n\n<p>Moderation, store reviews and the per-order form:<\/p>\n\n<ul>\n<li><code>australcode_product_reviews_hold_reason( $reason, $commentdata )<\/code> \u2014 why a new review is held for approval: <code>rating:N<\/code>, <code>phrase:&lt;the phrase&gt;<\/code> or <code>''<\/code> to publish it. Runs for new reviews from shoppers (not from users who can moderate comments) that WordPress would otherwise approve; return <code>''<\/code> to publish or any non-empty string to hold.<\/li>\n<li><code>australcode_product_reviews_store_keep_comment_form( $keep, $post_id )<\/code> \u2014 return <code>true<\/code> to keep WordPress's comment form on the page that holds the store reviews (it is closed by default, since a comment written there would be a review without a rating).<\/li>\n<li><code>australcode_product_reviews_order_form_post_limit( $limit )<\/code> \u2014 submissions allowed per per-order form and hour (default 60; each review card sent from the form is one submission; <code>0<\/code> removes the cap).<\/li>\n<\/ul>\n\n<p>Reminder and data filters: <code>australcode_product_reviews_reminder_subject<\/code>, <code>australcode_product_reviews_reminder_body<\/code>, <code>australcode_product_reviews_reminder_locale<\/code>, <code>australcode_product_reviews_reminder_eligible_statuses<\/code>, <code>australcode_product_reviews_reminder_max_order_age_days<\/code>, <code>australcode_product_reviews_reminder_retention_days<\/code>, <code>australcode_product_reviews_consent_unknown_country_is_strict<\/code>, <code>australcode_product_reviews_feed_max_reviews<\/code> and <code>australcode_product_reviews_erase_review_photos<\/code>.<\/p>\n\n<p>Actions: <code>australcode_product_reviews_after_reviews( $atts, $rendered )<\/code> (deprecated alias <code>acprv_after_reviews<\/code>) fires once the review list has finished building \u2014 a notification, not a place to print markup, since the shortcode returns its HTML. Also <code>australcode_product_reviews_reminder_sent<\/code>, <code>australcode_product_reviews_reminder_unsubscribed<\/code>, <code>australcode_product_reviews_coupon_issued<\/code>, <code>australcode_product_reviews_reviews_imported<\/code> and <code>australcode_product_reviews_booted<\/code>.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>0.7.7<\/h4>\n\n<ul>\n<li>Fixed: on the dashboard, the star next to the average rating sat far from the number and looked smaller. It now sits right next to it.<\/li>\n<\/ul>\n\n<h4>0.7.6<\/h4>\n\n<ul>\n<li>Fixed: the review form for an order showed the customer's name in French-style quotes (\u00ab\u2026\u00bb) in English. It now uses English quotes, and the Spanish translations keep their own.<\/li>\n<\/ul>\n\n<h4>0.7.5<\/h4>\n\n<ul>\n<li>Fixed: the dashboard counted the store's replies as reviews, so \"Average rating \u00b7 12 reviews\" could show with 11 approved reviews, and a reply could appear under \"Recent reviews\". The counts, the average and the list now include only customer reviews; the star bars of the reviews list skip replies too.<\/li>\n<li>Fixed: in the Pro photo gallery layout each photo now fills its tile instead of sitting small inside a larger frame.<\/li>\n<li>Fixed: the shortcode box in the widget builder no longer spills out of its card.<\/li>\n<li>Changed: on the dashboard, the period selector of the review form funnel sits on one line with its \"Apply\" button; it stacks only on small screens.<\/li>\n<li>Changed: the screenshot captions for reminders and consent now describe what those screens show.<\/li>\n<\/ul>\n\n<h4>0.7.4<\/h4>\n\n<ul>\n<li>Fixed: with \"Enable the plugin\" turned off, product pages no longer show the plugin's rating number next to each review's stars.<\/li>\n<li>Fixed: the Product reviews block and the Bricks, Elementor and Divi elements no longer repeat the product name on every card of a single product's list, the same as the shortcode since 0.7.0. \"Show product name\" still forces it on or off; in Elementor and Divi it now has an \"Auto\" choice, and widgets that already had it set keep their choice.<\/li>\n<li>Fixed: the Pro and license screen (what Pro adds, license status, renewal) is translated again in Spanish (Chile and Spain).<\/li>\n<li>Changed: the Site Reviews import and <code>wp acprv recalc<\/code> build their database queries in a way Plugin Check no longer flags. No change in behaviour.<\/li>\n<li>Developers: the hooks added in 0.7.0 are now documented in the FAQ (\"Can I change the markup or the behaviour from my own code?\").<\/li>\n<\/ul>\n\n<h4>0.7.3<\/h4>\n\n<ul>\n<li>Changed: the plugin's page now lives at https:\/\/australcode.io\/product-reviews\/ (the old address redirects there).<\/li>\n<li>Fixed: the per-order review form could be stored by host page caches that ignore <code>Cache-Control: no-store<\/code> (measured on Kinsta), so a shopper could get another shopper's form or a stale \"not found\" page. Every form URL now carries a query argument (<code>acprv_nc<\/code>), which page caches do not store, and an old link without it is redirected to the same page with it.<\/li>\n<\/ul>\n\n<h4>0.7.2<\/h4>\n\n<ul>\n<li>Changed: <code>wp acprv import site-reviews<\/code> (without <code>--dry-run<\/code>) asks you to deactivate Site Reviews first: while it is active it reports a rating of 0 for many products and the recalculated averages came out wrong. The import reads Site Reviews' data from the database, so it does not need the plugin active.<\/li>\n<li>Fixed: with an accent colour set in the settings, the text on buttons switches between white and dark for contrast (a light accent made white button text unreadable).<\/li>\n<li>Fixed: \"Reviews follow only these rules\" no longer releases a review that another plugin (an antispam) held before this one; it only overrides WordPress's own manual approval.<\/li>\n<\/ul>\n\n<h4>0.7.1<\/h4>\n\n<ul>\n<li>Added: \"Reviews follow only these rules\" (Settings \u203a Reviews): when WordPress is set to approve every comment manually (often for blog comments), reviews are decided by the plugin's rules instead, so 4\u20135 star reviews can publish on their own. Off by default.<\/li>\n<li>Added: <code>filters=\"chips\"<\/code> shows the rating filters as a compact row of chips (All, 5\u2605\u20261\u2605, With photos), for pages where the summary next to the list already shows the bars.<\/li>\n<li>Added: the reminder email uses your WooCommerce email template (logo, colours and footer, like the other store emails). Turn it off in Settings \u203a Reminders to keep the plain layout.<\/li>\n<li>Fixed: the star picker of the review form is drawn by the plugin, so it shows stars (not \"1 of 5 stars\" text) in themes and builders that do not load WooCommerce's icon font, such as Bricks and block themes.<\/li>\n<li>Fixed: the accent colour from the settings now reaches the per-order form, buttons and progress bar (they used the kit's default green), and form labels no longer take a theme's label colour.<\/li>\n<li>Fixed: the \"Sort by\" label no longer wraps when the theme makes selects full width, the carousel arrows keep their size, and the review search field has a placeholder.<\/li>\n<\/ul>\n\n<h4>0.7.0<\/h4>\n\n<ul>\n<li>Added: hold new reviews for approval by star rating (N stars or less) or by words and phrases you list (case- and accent-insensitive, whole words). Imported reviews keep their source status.<\/li>\n<li>Added: email the store when a review arrives (only pending ones or all, one by one or grouped hourly\/daily), with your WooCommerce email template and direct approve\/moderate links.<\/li>\n<li>Added: optional or required review title, a terms checkbox with a link to your terms page, and a configurable photo limit (1 to 10) in the product review form.<\/li>\n<li>Added: shoppers can search the reviews list (shortcode <code>search=\"true\"<\/code>, block, Bricks, REST <code>search<\/code>), sort it (including \"Most helpful\"), vote \"helpful\" from any list, and optionally report a review.<\/li>\n<li>Added: store replies are shown under each review in every layout with \"Reply from \", and the customer can be emailed when you reply.<\/li>\n<li>Changed: the rating of each review on the product page carries the plugin's translated label and the number next to the stars.<\/li>\n<li>Fixed: store replies no longer appear as separate reviews in the reviews list.<\/li>\n<li>Added: import from Site Reviews with <code>wp acprv import site-reviews<\/code> (use <code>--dry-run<\/code> first). Reviews that came from an existing WooCommerce review are completed instead of duplicated; photos, helpful votes, verified status, owner replies and moderation status come along; a parity report compares every product with Site Reviews. Running it again changes nothing, and <code>wp acprv import undo site-reviews<\/code> reverts it.<\/li>\n<li>Added: store reviews. Reviews about your store, not a product, live on a page you choose (by default the WooCommerce shop page). Show them with <code>[acprv_reviews type=\"store\"]<\/code>, or products and store together with <code>type=\"all\"<\/code>; the summary, the blocks, the Bricks element and the REST endpoint accept the same option.<\/li>\n<li>Added: <code>wp acprv recalc<\/code> checks and fixes the review count and average rating of every product and of the store.<\/li>\n<li>Added: one review form per order. The reminder email now links to a single page (inside your theme, no login) where the customer rates every product of the order, and optionally your store, in a couple of minutes; each review can be sent on its own and edited later from the same link. \"I have not tried it yet\" skips a product. Address and validity (60 days by default) are configurable.<\/li>\n<li>Added: an optional \"Review my purchase\" button in the WooCommerce \"Completed order\" email, following the same consent and unsubscribe rules as the reminders.<\/li>\n<li>Added: an invitation to review your store on Google, on the thank-you page and optionally in the reminder email. It is shown to every customer whatever their rating and is never tied to the coupon.<\/li>\n<li>Added: a review form funnel in the dashboard (invitations sent, emails opened, forms viewed, orders with reviews) and, on each order, a box to copy the form link or send it by WhatsApp.<\/li>\n<li>Added: the review coupon can be issued once per order (when its first review from the form is approved) and can exclude products on sale.<\/li>\n<li>Added: the {review_form_link} placeholder for the reminder email template.<\/li>\n<li>Added: <code>[acprv_rating]<\/code>, a compact rating (stars, average and number of reviews) for product cards and product pages built with a page builder, also on shop and category pages.<\/li>\n<li>Added: <code>empty=\"hide\"<\/code> for <code>[acprv_reviews]<\/code> (and \"Hide when there are no reviews\" in the block, \"Without reviews\" in Bricks) prints nothing when there are no reviews to show.<\/li>\n<li>Changed: the per-order form keeps its private link in a cookie after the first visit and shows a clean address (<code>\/review\/<\/code>), so the theme's analytics and the browser history no longer record it. It also sends no-store, no-referrer and noindex headers, opens only for paid orders, and stops opening when the order is refunded, cancelled or failed.<\/li>\n<li>Changed: visits from the store team, email link scanners and browser prefetch no longer count as form views in the funnel; a form accepts up to 60 submissions per hour.<\/li>\n<li>Changed: \"Helpful\" and \"Report\" buttons are always rendered neutral and the browser marks the ones you already used, so cached pages no longer show one visitor's votes to everyone. Both buttons now name the review they belong to for screen readers.<\/li>\n<li>Changed: a review reported again after you approve it starts counting toward the hold threshold from zero; the team gets one email for the first report and one when the threshold is reached, and one person reports a review once, whatever browser they use.<\/li>\n<li>Changed: searches made without JavaScript (<code>?acprv-q=<\/code>) are marked noindex.<\/li>\n<li>Fixed: star-rating and phrase moderation rules now apply to reviews sent from the per-order form, including the title and edits (a 5-star review edited to 1 star goes back to pending), and the hold reason is saved for reviews created through the REST API too.<\/li>\n<li>Fixed: returning customers whose products were all reviewed already now reach the thank-you page; two cards sent at the same time no longer overwrite each other's progress; editing a review keeps backslashes and does not re-moderate it when nothing changed; the photo limit message shows the form's limit.<\/li>\n<li>Fixed: activating, updating or changing the form address no longer breaks the theme's custom post type addresses (rewrite rules are flushed after everything is registered).<\/li>\n<li>Fixed: the email open count survives rotating the WordPress salts; the test email no longer creates an empty form.<\/li>\n<li>Fixed: store reviews can be voted on and reported, their replies (also imported ones) are shown, and they are included in the grouped review email.<\/li>\n<li>Fixed: the \"+N\" tile of the photo gallery appears when there are more reviews with photos than tiles.<\/li>\n<li>Fixed: a new search, filter or sort made while the list is still loading is no longer lost.<\/li>\n<li>Fixed: approving imported replies in bulk no longer emails the authors of old reviews.<\/li>\n<li>Fixed (Site Reviews import): undoing an import no longer issues coupons for old reviews and never deletes a review it did not create; an interrupted run leaves no half-written reviews (one transaction per review) and the next run recalculates every product; owner replies with \"&amp;\" are no longer duplicated; reviews without a GMT date get one; the Site Reviews user is used when present; counts are updated once per run instead of once per batch; the Google feed cache is cleared; <code>--store-target<\/code> is used for the store totals; the totals report what was written and the command ends with an error if anything failed.<\/li>\n<\/ul>\n\n<h4>0.6.1<\/h4>\n\n<ul>\n<li>Fixed: every database query now passes its table name as an escaped identifier instead of building it into the SQL text. No change in behaviour; it clears 19 Plugin Check warnings.<\/li>\n<li>Changed: the plugin ships a composer.json again (without any personal data), as Plugin Check expects when the vendor folder is included.<\/li>\n<\/ul>\n\n<h4>0.6.0<\/h4>\n\n<ul>\n<li>Added: one-click unsubscribe in every reminder (link in the email and the List-Unsubscribe header). An unsubscribed email never receives another reminder.<\/li>\n<li>Added: WordPress's \"Export \/ Erase personal data\" tools now cover reminders, review photos, review coupons and the reviews themselves (WooCommerce hides product reviews from the core tools), plus a suggested privacy-policy paragraph and a three-year retention for reminder records.<\/li>\n<li>Added: reminders are re-checked right before sending and scheduled only once per order and step; cancelled, refunded or trashed orders cancel them, reactivating the plugin puts pending ones back in the queue, and failed sends can be retried from the dashboard.<\/li>\n<li>Added: rating filters for shoppers, a \"with photos\" filter, \"Show more reviews\" without reloading, a compact layout and a photo lightbox that shows each photo next to its review. New Gutenberg blocks for the summary and the review button.<\/li>\n<li>Added (Pro): carousel and photo gallery layouts.<\/li>\n<li>Added: import from Judge.me, CusRev and Yotpo exports, semicolon or tab separated and Windows-1252 files, photos and store replies, day\/month dates, and large files in the background. Exports can use the Excel format for comma-decimal locales.<\/li>\n<li>Changed: consent is now decided by what the customer saw at checkout, in the classic and the block checkout; orders without a billing country ask for consent. New installs start with the EEA and the UK on the list.<\/li>\n<li>Changed: the verified badge is checked live and needs proof that the email is the reviewer's own (an account, or the link in the reminder email); a refund removes it, and only one verified indicator shows per review.<\/li>\n<li>Changed: the review coupon goes to verified buyers only, one per product, never depends on the star rating, and every review that earned one is labeled as incentivized and left out of the Google feed.<\/li>\n<li>Changed: photo uploads are off by default on new installs; photos stay private until the review is approved and lose their location data. Turning uploads off keeps published photos visible.<\/li>\n<li>Changed: Pro is now sold by number of sites (1, 5 or unlimited).<\/li>\n<li>Changed: the plugin now runs on PHP 8.1.<\/li>\n<li>Fixed: review lists could show reviews of private, draft or password-protected products.<\/li>\n<li>Fixed: the rating distribution percentages now add up to 100, and the review count ignores reviews without a rating.<\/li>\n<li>Fixed: helpful votes are counted once per person, and guests can vote on cached pages.<\/li>\n<li>Fixed: the Google feed only lists eligible reviews as plain text, and refreshes when products change.<\/li>\n<li>Fixed: the reminder email is sent in the store's language and from the store's address.<\/li>\n<li>Fixed: the block editor and every screen are fully translated into Spanish.<\/li>\n<\/ul>\n\n<h4>0.5.1<\/h4>\n\n<ul>\n<li>Fixed: the list of Pro features rendered as a run-on block instead of a bulleted list, because WordPress strips the bullets back out. This affected every licence state, including the \"What you get with Pro\" screen that free sites see.<\/li>\n<li>Improved: the reminder email's accent colour now has the same control as the rest of your settings \u2014 you can type or paste a hex code, and reset it to the default. Until now the colour swatch was the only way in, so a brand colour you had on the clipboard could not be entered.<\/li>\n<li>Improved: choosing a CSV to import now uses the plugin's own file picker and shows the name of the file you picked, instead of the grey button your browser draws by default.<\/li>\n<li>Fixed: two admin pages showed a shortened plugin name in the browser tab, so the plugin appeared under two slightly different names depending on where you looked.<\/li>\n<\/ul>\n\n<h4>0.5.0<\/h4>\n\n<ul>\n<li>Added: if your Pro license has lapsed, the plugin now tells you and takes you straight to renewing it, instead of offering you an upgrade you already bought. From the moment you hold a license, the menu entry reads \"License\" rather than \"Upgrade\", whatever state that license is in.<\/li>\n<li>Fixed: rich snippets no longer carry a GTIN that WooCommerce had deliberately left out. WooCommerce validates GTINs itself and drops the ones that fail its format check, or that belong to the parent product rather than the variation you are viewing \u2014 and the plugin was putting them straight back. A valid GTIN for the wrong product is the kind of error no validator catches, so the plugin now leaves GTINs entirely to WooCommerce.<\/li>\n<li>Fixed: your brand's logo no longer disappears from the structured data. The plugin now fills the brand in only when nothing else did, so WooCommerce's own brand entry \u2014 logo included \u2014 survives untouched.<\/li>\n<li>Fixed: a product with more than one brand value reported a brand that does not exist, by joining them into a single name such as \"Acme | Globex\". It now reports the first one.<\/li>\n<li>Changed: the widget builder adopts the shared panel layout used across our plugins, so the live preview follows you down the page consistently. On screens between 881 and 900 pixels wide the panel now stacks into one column, where before it stayed side by side.<\/li>\n<li>Fixed: the bundled LICENSE file was truncated and still carried unfilled template placeholders. It now ships the full GPL-2.0 text with the correct copyright holder.<\/li>\n<\/ul>\n\n<h4>0.4.2<\/h4>\n\n<ul>\n<li>Changed: the plugin is now listed as \"Australcode Product Reviews &amp; Review Reminders for WooCommerce\", so the review reminders it sends are visible in the name. Nothing else changes \u2014 same plugin, same settings, same data.<\/li>\n<li>Changed: the \"Support Forum\" link now takes free users to the WordPress.org support forum, where answers are public and searchable, so the next person with your question finds it too. Paid users keep the direct support channel.<\/li>\n<li>Fixed: marking a review as helpful could fail without saying so. The vote now confirms, and tells you when it could not be saved.<\/li>\n<li>Fixed: switched-off fields were unreadable. A disabled dropdown was too faint against its background to make out \u2014 now both the field and its label are legible.<\/li>\n<li>Fixed: the widget builder could not tell \"no reviews match these settings\" apart from \"the preview failed to load\", so both looked like an empty result. Each now says which it is, and a failed preview offers to retry.<\/li>\n<li>Fixed: the widget builder preview scrolled out of view on wide screens, leaving most of the panel empty. It now follows you down the page.<\/li>\n<li>Fixed: on phones, a review was rendered narrower than the summary above it, because of an indent WooCommerce adds for the avatar. Both now line up.<\/li>\n<li>Fixed: the review shortcode showed nothing at all on a product with no reviews yet. It now says so.<\/li>\n<li>Fixed: the CSV import wizard failed silently when the connection dropped, and did not say which columns it needs before you map them.<\/li>\n<li>Fixed: the stars on review cards and the photo hint text did not have enough contrast on light themes.<\/li>\n<li>Improved: keyboard focus rings, status badges and status dots are now legible on dark admin colour schemes.<\/li>\n<\/ul>\n\n<h4>0.4.1<\/h4>\n\n<ul>\n<li>Fixed: on phones the \"Was this helpful?\" button was too small to tap comfortably \u2014 it now meets the 44px accessibility minimum, like the rest of the controls. It is the button that repeats on every review, so it is the one you hit most.<\/li>\n<li>Fixed: importing or exporting reviews no longer writes deprecation warnings to your error log on PHP 8.4 and newer. The CSV quoting is now stated explicitly, so an export re-imported later comes back byte-identical even after PHP changes its default.<\/li>\n<\/ul>\n\n<h4>0.4.0<\/h4>\n\n<ul>\n<li>Added: Spanish (es-CL and es-ES) now ships with the plugin, for the free version too. Until now the translation was only bundled with the paid version, so free users always saw English.<\/li>\n<li>Added: a \"Corner shape\" option in the style panel \u2014 square, soft or round corners for the review widgets.<\/li>\n<li>Fixed: the review sorting buttons were invisible on dark themes. They now take their colour from your theme.<\/li>\n<li>Fixed: the verified-purchase badge did not have enough contrast to be readable on light or dark themes.<\/li>\n<li>Fixed: tap targets on phones \u2014 the rating stars, the photo picker and the sorting buttons are now large enough to tap comfortably.<\/li>\n<li>Fixed: on block themes, the review summary and the \"Write a review\" button could sit outside your content column.<\/li>\n<li>Fixed: the live preview in the widget builder lost its grid and card borders.<\/li>\n<li>Fixed: photos attached to reviews no longer stretch the rows of the WooCommerce review moderation list.<\/li>\n<li>Fixed: sorting by rating no longer implies it sorted every review when your reviews are split across pages.<\/li>\n<li>Fixed: the review widgets no longer inject themselves into the canvas while you are editing a page in Bricks, Elementor or Divi.<\/li>\n<li>Fixed: with a custom email template switched off, its fields now show they are not in effect, and the test email no longer uses a template that will not be sent.<\/li>\n<li>Improved: notices from our licensing provider now appear only on this plugin's own screens instead of across your whole dashboard.<\/li>\n<li>Improved: clearer disclosure of what the \"Contact Us\" link sends, and a GDPR entry in the FAQ.<\/li>\n<li>Corrected: the plugin no longer claims WPML and Polylang compatibility \u2014 it never implemented it. Nothing changes in how the plugin behaves.<\/li>\n<\/ul>\n\n<h4>0.3.5<\/h4>\n\n<ul>\n<li>Fixed: if you bought Pro but have not installed the Pro version yet, the plugin no longer invites you to buy it again. It now says your license is active and points you to the download.<\/li>\n<li>Fixed: on phones, the plugin's own tabs no longer push the current page out of view \u2014 every tab is visible.<\/li>\n<li>Improved: the \"Manage license\" button now opens your account instead of the pricing page.<\/li>\n<\/ul>\n\n<h4>0.3.4<\/h4>\n\n<ul>\n<li>Fixed: right after buying Pro, the free version could report the Pro features as active before the Pro version was installed \u2014 so it announced options it could not run yet. It now waits until the Pro version is running.<\/li>\n<li>Improved: small refinements to the admin styling, and the translation template now ships with the plugin so anyone can start translating it at translate.wordpress.org.<\/li>\n<\/ul>\n\n<h4>0.3.3<\/h4>\n\n<ul>\n<li>Housekeeping: the free version no longer includes any Pro-only controls. The multi-step reminder options live entirely in the Pro version, in line with the WordPress.org guidelines.<\/li>\n<li>Changed: translations are no longer bundled in the download. WordPress.org generates and delivers them automatically through translate.wordpress.org.<\/li>\n<\/ul>\n\n<h4>0.3.1<\/h4>\n\n<ul>\n<li>Housekeeping: the plugin no longer loads its translations manually. WordPress has done this automatically since 4.6, and the Spanish (es-CL, es-ES) translations keep working exactly as before \u2014 verified on WordPress 6.5.<\/li>\n<\/ul>\n\n<h4>0.3.0<\/h4>\n\n<ul>\n<li><strong>Now free: automatic discount coupons for reviews.<\/strong> Thank every approved reviewer with a WooCommerce coupon, emailed automatically. This used to require Pro.<\/li>\n<li><strong>Now free: the Google Shopping product reviews feed.<\/strong> Publish your ratings so they can appear in Google Shopping. This used to require Pro.<\/li>\n<li>Improved: the coupon amount is now capped at 100 for percentage coupons (a fixed cart amount is still uncapped), so a mistyped value cannot create a coupon worth more than the cart.<\/li>\n<li>Changed: Pro now focuses on two things, both about scale \u2014 multi-step reminders and the visual email editor with test sending.<\/li>\n<li>Changed: the Pro code is no longer shipped inside the free download. Pro features are built into the Pro version only, which is what WordPress.org asks for.<\/li>\n<li>New: a \"Contact Us\" entry in the plugin menu, so you can reach us from the plugin itself.<\/li>\n<li>Fixed: the colour pickers in Display style now show the colour the plugin actually uses when you leave a field empty. The star swatch offered green while stars render orange.<\/li>\n<\/ul>\n\n<h4>0.2.1<\/h4>\n\n<ul>\n<li>Improved: the License screen now shows what your Pro plan includes instead of an empty page, and the licence box no longer overflows on narrow phones.<\/li>\n<li>Fixed: the admin menu entry reads \"License\" once Pro is active, instead of still inviting you to upgrade.<\/li>\n<li>Fixed: the upgrade screens are now fully translated into Spanish (es-CL and es-ES).<\/li>\n<li>Fixed: the Pro feature list on the upgrade and settings screens now describes what Pro actually does \u2014 it no longer mentions per-country reminder delays or a product feed, neither of which exists.<\/li>\n<\/ul>\n\n<h4>0.2.0<\/h4>\n\n<ul>\n<li>New: Widget builder \u2014 a visual admin screen to configure a reviews widget, preview it live and copy a ready-to-paste shortcode.<\/li>\n<li>New: <code>[acprv_summary]<\/code> and <code>[acprv_form]<\/code> shortcodes to place the rating summary and the review form anywhere, independently from the reviews list.<\/li>\n<li>New: per-instance display options (columns, heading, product scope, sort and order, and toggles for date, photos, verified badge, product name and helpful count) for the <code>[acprv_reviews]<\/code> shortcode, the Gutenberg block and the Bricks, Elementor and Divi widgets.<\/li>\n<li>Improved: Spanish (es_CL, es_ES) translations updated to cover the new widget options.<\/li>\n<\/ul>\n\n<h4>0.1.0<\/h4>\n\n<ul>\n<li>Initial release: self-hosted reminder engine, geo-aware consent, verified-buyer badge, rating summary with sorting, photo reviews, helpful votes, JSON-LD structured data, CSV import\/export, style panel, and display via shortcode, Gutenberg block and Bricks\/Elementor\/Divi widgets.<\/li>\n<\/ul>","raw_excerpt":"Self-hosted WooCommerce product reviews: review reminder emails with no monthly cap, geo-aware consent, photo reviews and an honest verified badge.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/uz.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/344004","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/uz.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/uz.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/uz.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=344004"}],"author":[{"embeddable":true,"href":"https:\/\/uz.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/australcode"}],"wp:attachment":[{"href":"https:\/\/uz.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=344004"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/uz.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=344004"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/uz.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=344004"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/uz.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=344004"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/uz.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=344004"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/uz.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=344004"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}