{"id":366597,"date":"2026-09-12T07:46:17","date_gmt":"2026-09-12T07:46:17","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/popo-reviews\/"},"modified":"2026-09-12T07:45:42","modified_gmt":"2026-09-12T07:45:42","slug":"popo-reviews","status":"publish","type":"plugin","link":"https:\/\/ku.wordpress.org\/plugins\/popo-reviews\/","author":23563439,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.0.0","stable_tag":"1.0.0","tested":"7.1","requires":"6.4","requires_php":"7.4","requires_plugins":null,"header_name":"Popo Reviews","header_author":"PopoMaster","header_description":"Photo and video reviews for WooCommerce with verified purchases, review requests, rewards, and native review storage.","assets_banners_color":"ceb6b9","last_updated":"2026-09-12 07:45:42","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"","header_author_uri":"","rating":0,"author_block_rating":0,"active_installs":0,"downloads":45,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.0":{"tag":"1.0.0","author":"popomasterstudio","date":"2026-09-12 07:45:42","revision":3692444}},"upgrade_notice":[],"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3692433,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3692433,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3692433,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3692433,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.0"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3692433,"resolution":"1","location":"assets","locale":"","width":2988,"height":1872},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3692433,"resolution":"2","location":"assets","locale":"","width":3096,"height":1870}},"screenshots":[]},"plugin_section":[],"plugin_tags":[149759,5431,273520,171669,286],"plugin_category":[45],"plugin_contributors":[],"plugin_business_model":[],"class_list":["post-366597","plugin","type-plugin","status-publish","hentry","plugin_tags-photo-reviews","plugin_tags-product-reviews","plugin_tags-review-reminders","plugin_tags-video-reviews","plugin_tags-woocommerce","plugin_category-ecommerce","plugin_committers-popomasterstudio"],"banners":{"banner":"https:\/\/ps.w.org\/popo-reviews\/assets\/banner-772x250.png?rev=3692433","banner_2x":"https:\/\/ps.w.org\/popo-reviews\/assets\/banner-1544x500.png?rev=3692433","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/popo-reviews\/assets\/icon-128x128.png?rev=3692433","icon_2x":"https:\/\/ps.w.org\/popo-reviews\/assets\/icon-256x256.png?rev=3692433","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/popo-reviews\/assets\/screenshot-1.png?rev=3692433","caption":""},{"src":"https:\/\/ps.w.org\/popo-reviews\/assets\/screenshot-2.png?rev=3692433","caption":""}],"raw_content":"<!--section=description-->\n<p>Popo Reviews adds a modern review experience to WooCommerce while keeping product reviews compatible with native WordPress and WooCommerce review storage.<\/p>\n\n<p>Popo Reviews is free software. No Popo account, license key, activation key, or subscription is required to use the plugin.<\/p>\n\n<h4>Review display<\/h4>\n\n<ul>\n<li>Product review summary and rating distribution.<\/li>\n<li>Photo and video reviews.<\/li>\n<li>Customer photo gallery and review lightbox.<\/li>\n<li>Rating, media, and sorting controls.<\/li>\n<li>Responsive list and masonry layouts.<\/li>\n<li>Configurable review card appearance and verified badge styling.<\/li>\n<li>Store replies using native WordPress comment replies.<\/li>\n<li>AJAX review loading.<\/li>\n<li>Shortcodes for full reviews, summaries, inline ratings, counts, customer photos, invitation forms, featured reviews, and sliders.<\/li>\n<li>Existing WooCommerce review text and ratings remain native WooCommerce data.<\/li>\n<\/ul>\n\n<h4>Review collection and moderation<\/h4>\n\n<ul>\n<li>Review form with optional image and video uploads.<\/li>\n<li>Invitation-only review links with signed order and product validation.<\/li>\n<li>Invited reviews can be marked as verified purchases.<\/li>\n<li>Configurable moderation: manual approval, automatic approval for verified invitation reviews that meet configured conditions, or automatic approval for all valid customer reviews.<\/li>\n<li>Optional purchased-customer-only review submissions.<\/li>\n<li>Anti-spam honeypot and configurable submission rate limiting.<\/li>\n<li>Admin review search, editing, moderation, replies, verification controls, and bulk actions.<\/li>\n<li>Manual review creation and CSV import\/export for store-owned review data.<\/li>\n<li>Duplicate detection during imports.<\/li>\n<li>Import preview and batched processing for larger CSV files.<\/li>\n<\/ul>\n\n<h4>Review request automation<\/h4>\n\n<ul>\n<li>Manual review invitations for eligible WooCommerce orders.<\/li>\n<li>Optional delivery-based automation when Popo Order Track is installed and connected.<\/li>\n<li>Configurable delay after delivery.<\/li>\n<li>One invitation per eligible order\/product flow; no automatic reminder is sent after a successful request.<\/li>\n<li>Exclusion rules for products, categories, zero-total orders, email addresses, and domains.<\/li>\n<li>Visual request-email and reward-email builders.<\/li>\n<li>Automatic retry for technical email delivery failures.<\/li>\n<li>Optional email-open and review-link click tracking, disabled by default.<\/li>\n<\/ul>\n\n<h4>Review rewards<\/h4>\n\n<ul>\n<li>Optional unique WooCommerce coupon rewards after an invited review is submitted.<\/li>\n<li>Reward tiers can differ for text, photo, or video reviews.<\/li>\n<li>Rewards are not based on the star rating given by the customer.<\/li>\n<li>Configurable reward expiry and cleanup.<\/li>\n<li>Protection against duplicate rewards for the same order and product.<\/li>\n<\/ul>\n\n<h4>Store management<\/h4>\n\n<ul>\n<li>Dashboard and automation metrics.<\/li>\n<li>Operation logs with Error, Warning, and Info levels.<\/li>\n<li>System Status and privacy-safe diagnostic downloads.<\/li>\n<li>WordPress Privacy Exporter and Eraser integration.<\/li>\n<li>WooCommerce HPOS compatibility declaration.<\/li>\n<li>Safe deactivation: native review text and ratings remain available in WooCommerce.<\/li>\n<\/ul>\n\n<h4>Source code and build process<\/h4>\n\n<p>All PHP, CSS, and JavaScript distributed with Popo Reviews is included in human-readable source form in the plugin package. Popo Reviews does not require npm, webpack, a minification step, or other build tooling to regenerate the distributed assets. The JavaScript files in <code>assets\/js\/<\/code> are the maintained source files used by the plugin.<\/p>\n\n<h3>Shortcodes<\/h3>\n\n<p>Popo Reviews includes reusable shortcodes for WooCommerce product pages, landing pages, page builders, and store-wide review sections.<\/p>\n\n<ul>\n<li><code>[popo_reviews product_id=\"123\"]<\/code> \u2014 full product review widget. Custom filters support <code>scope<\/code>, <code>limit<\/code>, <code>rating<\/code>, <code>verified<\/code>, <code>media<\/code>, <code>order<\/code>, <code>layout<\/code>, and visibility controls.<\/li>\n<li><code>[popo_review_summary product_id=\"123\"]<\/code> \u2014 average rating, count, and optional rating histogram.<\/li>\n<li><code>[popo_rating product_id=\"123\"]<\/code> \u2014 compact stars, average, and review count.<\/li>\n<li><code>[popo_review_count product_id=\"123\"]<\/code> \u2014 published review count only.<\/li>\n<li><code>[popo_customer_photos product_id=\"123\" limit=\"12\" columns=\"6\"]<\/code> \u2014 responsive customer photo gallery.<\/li>\n<li><code>[popo_review_form product_id=\"123\"]<\/code> \u2014 secure review-form launcher for a valid signed review invitation; it does not expose public submission.<\/li>\n<li><code>[popo_featured_reviews scope=\"store\" limit=\"6\"]<\/code> \u2014 reviews marked Featured by an administrator.<\/li>\n<li><code>[popo_review_slider scope=\"store\" limit=\"8\"]<\/code> \u2014 responsive review carousel.<\/li>\n<\/ul>\n\n<p>The legacy <code>[popo_review_gallery]<\/code> shortcode remains supported for backward compatibility. On a product page, <code>product_id<\/code> can usually be omitted. Use <code>scope=\"store\"<\/code> for store-wide supported shortcodes.<\/p>\n\n<h3>Privacy<\/h3>\n\n<p>Popo Reviews can store reviewer names, email addresses, ratings, review text, uploaded images or videos, verification metadata, and review-request metadata related to WooCommerce orders. Review media is stored in the WordPress Media Library.<\/p>\n\n<p>The plugin integrates with the WordPress personal-data exporter and eraser for review data it manages. It also adds suggested privacy-policy text in WordPress when available.<\/p>\n\n<p>Optional email-open and review-link click tracking is disabled by default. If the store administrator enables it, tracking uses first-party URLs on the store itself. Popo Reviews does not send telemetry to Popo servers.<\/p>\n\n<p>When an administrator imports review media from remote URLs, the store server contacts the administrator-provided remote host to download that media. This request occurs only as part of the administrator-initiated import.<\/p>\n\n<h3>External services and network requests<\/h3>\n\n<p>Popo Reviews does not require a PopoMaster cloud service and does not send telemetry to PopoMaster. Review-request and reward emails use the WordPress\/WooCommerce email environment configured by the store.<\/p>\n\n<p>If an administrator imports review media from a remote URL, the store server contacts only the administrator-provided host to retrieve that media. If optional delivery automation is enabled through Popo Order Track, Popo Reviews receives local WordPress hooks from that plugin; Popo Reviews itself does not contact a PopoMaster tracking service.<\/p>\n\n<h3>Copyright<\/h3>\n\n<p>Copyright \u00a9 2026 LELE WU. Popo Reviews is licensed under GPL-2.0-or-later.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Install Popo Reviews from Plugins &gt; Add New, or upload the plugin ZIP.<\/li>\n<li>Activate Popo Reviews. WooCommerce must also be installed and active.<\/li>\n<li>Open Popo Reviews &gt; Settings and configure the display and review options you want to use.<\/li>\n<li>Make sure WooCommerce product reviews and ratings are enabled.<\/li>\n<li>If you want delivery-triggered review requests, connect a compatible delivery source such as Popo Order Track. Core review functionality does not require that integration.<\/li>\n<\/ol>\n\n<p>No license key or external Popo account is required.<\/p>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20popo%20reviews%20require%20a%20license%20key%20or%20popo%20account%3F\"><h3>Does Popo Reviews require a license key or Popo account?<\/h3><\/dt>\n<dd><p>No. The WordPress.org release is free and licensed under GPLv2 or later. All included functionality is available after activation.<\/p><\/dd>\n<dt id=\"where%20are%20reviews%20stored%3F\"><h3>Where are reviews stored?<\/h3><\/dt>\n<dd><p>Review text and ratings use native WordPress\/WooCommerce comment storage. Popo-specific review information is stored in comment metadata, and uploaded review images\/videos are stored in the WordPress Media Library.<\/p><\/dd>\n<dt id=\"will%20my%20reviews%20disappear%20if%20i%20deactivate%20popo%20reviews%3F\"><h3>Will my reviews disappear if I deactivate Popo Reviews?<\/h3><\/dt>\n<dd><p>No. Native review text, ratings, and WooCommerce comment data remain in WordPress. Some Popo-specific presentation and automation features will not run while the plugin is inactive.<\/p><\/dd>\n<dt id=\"does%20the%20plugin%20send%20data%20to%20popo%20servers%3F\"><h3>Does the plugin send data to Popo servers?<\/h3><\/dt>\n<dd><p>No telemetry is sent to Popo servers. Review-request emails are sent through the WordPress\/WooCommerce mail environment configured by the store.<\/p><\/dd>\n<dt id=\"does%20popo%20reviews%20require%20popo%20order%20track%3F\"><h3>Does Popo Reviews require Popo Order Track?<\/h3><\/dt>\n<dd><p>No. Product review display, collection, moderation, import\/export, manual review invitations, and other core functions can be used independently. Popo Order Track is only an optional local integration for delivery-triggered automation.<\/p><\/dd>\n<dt id=\"can%20customers%20receive%20a%20reward%20for%20leaving%20a%20review%3F\"><h3>Can customers receive a reward for leaving a review?<\/h3><\/dt>\n<dd><p>Yes, if the store administrator enables rewards. Reward eligibility can depend on whether a review contains text, photos, or video, but it does not depend on whether the customer leaves a positive or negative star rating.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>WordPress.org review fixes: strengthened nonce\/upload validation, sanitized requester-provided filenames, included human-readable JavaScript source, and removed unnecessary WordPress core includes.<\/li>\n<li>Completed the all-category Plugin Check performance audit: reduced repeated Flow integrity scans, cached reward-conversion source IDs, and documented bounded\/required meta queries with narrow PHPCS annotations.<\/li>\n<li>Reworked Activity Logs filtering to use a fully static prepared SQL structure with no interpolated WHERE fragments.<\/li>\n<li>Plugin Check error-level cleanup: identifier-safe prepared SQL, ordered translation placeholders, and narrowly documented CSV stream operations.<\/li>\n<li>Added translator comments for localized strings with printf-style placeholders to satisfy WordPress internationalization checks.<\/li>\n<li>New eligible WooCommerce orders automatically enter the review Flow and show Awaiting shipment until Popo Order Track creates a shipment.<\/li>\n<li>Cancelled, fully refunded, and failed orders automatically leave the active Flow and cancel pending review-request actions; partial refunds remain in Flow.<\/li>\n<li>Automatic exits are retained as audit history in the Exited view and can only re-enter through an explicit administrator action.<\/li>\n<li>Hardened multi-shipment, duplicate Delivered, cancellation, retry, and already-sent guards so stale events cannot create duplicate invitations.<\/li>\n<li>Added a privacy-minimal event ledger with database-enforced unique event keys so repeated hooks cannot store the same review automation event twice.<\/li>\n<li>Dashboard delivery, scheduling, sent-request and invited-review metrics now count unique order or review IDs, and repeated reward-conversion hooks preserve the original conversion time.<\/li>\n<li>Added 30, 60 and 90 day Review automation filters shared by the main Dashboard and Review Requests page; Waiting in flow remains the live current queue.<\/li>\n<li>Clarified the Review automation heading: performance metrics cover the last 30 days while Waiting in flow is the current queue.<\/li>\n<li>Added an explanatory note below Conversion clarifying that it is the percentage of sent review requests that produced reviews.<\/li>\n<li>Replaced the duplicate Review Requests summary cards with the same Review automation panel used on the main Dashboard; the detailed Flow table remains below it.<\/li>\n<li>Reward orders now count only new WooCommerce orders that actually used a Popo Reviews reward coupon, not coupons that were merely issued.<\/li>\n<li>The Rewarded orders tab now contains only source Flow orders with a verified reward-coupon redemption and shows the linked new order, status, value, date and coupon.<\/li>\n<li>Added one-time legacy Review Request Flow status normalization so upgraded stores and fresh installs use the same concrete request-status schema.<\/li>\n<li>Blank\/missing legacy statuses are inferred from sent\/scheduled\/trigger\/delivery data and saved as standard statuses before dashboard counts are shown.<\/li>\n<li>Large legacy stores hide dashboard metrics while bounded normalization is incomplete instead of displaying potentially incorrect values.<\/li>\n<li>Fixed Manual order actions search for custom\/sequential displayed order numbers that differ from WooCommerce database order IDs.<\/li>\n<li>Manual order search now explains when a matching order is hidden by the current date, delivery or flow-membership filter.<\/li>\n<li>Fixed Waiting orders whose request-status meta exists with an empty value; Waiting counts and rows now use the same explicit + empty + missing-status union.<\/li>\n<li>Historical skipped orders remain visible in All but are no longer counted as Needs attention because they were intentionally skipped by the historical-order protection rule.<\/li>\n<li>Fixed Waiting counts for flow members without a request status so the Waiting metric, Waiting tab count and Waiting tab rows stay consistent.<\/li>\n<li>Flow-only Waiting orders are derived with positive meta queries and PHP subtraction instead of a large-store NOT EXISTS query.<\/li>\n<li>Unified Review Request dashboard status definitions so tab counts, tab rows and row state badges use the same Waiting and Needs attention rules.<\/li>\n<li>Waiting now includes awaiting completion and legacy awaiting shipment states; delivery reopened is classified as Needs attention; already reviewed is no longer treated as an error state.<\/li>\n<li>Rewarded orders now use one canonical reward-linked, existing-flow-order ID set for both counts and pagination.<\/li>\n<li>Renamed the metric to Rewarded orders to reflect that it counts unique orders, not raw coupon records.<\/li>\n<li>Fixed an HPOS rewarded-count regression where include + paginate could report the full store order total instead of actual rewarded orders.<\/li>\n<li>Rewarded counts now use the distinct reward-linked order IDs directly and search them in bounded ID-only chunks.<\/li>\n<li>Switched the storefront rating summary to container-query responsive sizing so narrow product columns remain correctly aligned even on wide screens.<\/li>\n<li>Optimized the Review Request Dashboard for large order stores by removing expensive flow-membership OR meta queries, avoiding duplicate selected-tab counts, and loading only the current page of rewarded orders.<\/li>\n<li>Changed Customer Photos items from theme-styled buttons to plugin-owned accessible gallery elements.<\/li>\n<li>Frontend and admin assets use file-modification cache-busting so updated styles and scripts load immediately.<\/li>\n<li>Isolated Customer Photos gallery buttons and images from theme CSS so gallery tiles keep consistent square dimensions across themes.<\/li>\n<li>Improved the product-review score and histogram layout across desktop, tablet and mobile widths.<\/li>\n<li>Hardened storefront review-gallery media sizing against theme button CSS so uploaded images stay square.<\/li>\n<li>Improved the stacked admin-media +N badge with a high-contrast count indicator.<\/li>\n<li>Admin review media now stacks thumbnails when a customer uploads more than two images, preventing review-table layout overflow.<\/li>\n<li>Review Request Dashboard now defaults to 5 rows per page, with 5\/10\/20\/50 row options.<\/li>\n<li>Removed the Version history panel from Email Flow.<\/li>\n<li>Initial public release of Popo Reviews.<\/li>\n<li>Collect, manage, moderate, import, export and display WooCommerce product reviews.<\/li>\n<li>Supports photo and video reviews, verified review invitations, review-request automation and optional review rewards.<\/li>\n<li>Includes Review Requests, Email Flow, Logs, Settings, Shortcodes and Help admin workspaces.<\/li>\n<li>Includes configurable review moderation with Manual approval, Auto approve verified reviews and Auto approve all valid reviews.<\/li>\n<li>Includes privacy tools, uninstall cleanup, WooCommerce HPOS compatibility and WordPress.org release hardening.<\/li>\n<li>Optimized Dashboard automation queries for large WooCommerce stores by removing expensive multi-EXISTS OR and NOT EXISTS order-meta scans.<\/li>\n<\/ul>","raw_excerpt":"Photo and video product reviews for WooCommerce with verified purchases, review requests, rewards, and native review storage.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/ku.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/366597","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ku.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/ku.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/ku.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=366597"}],"author":[{"embeddable":true,"href":"https:\/\/ku.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/popomasterstudio"}],"wp:attachment":[{"href":"https:\/\/ku.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=366597"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/ku.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=366597"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/ku.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=366597"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/ku.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=366597"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/ku.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=366597"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/ku.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=366597"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}