{"id":346235,"date":"2026-08-13T06:56:48","date_gmt":"2026-08-13T06:56:48","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/photo-video-reviews-for-woocommerce\/"},"modified":"2026-10-26T09:38:57","modified_gmt":"2026-10-26T09:38:57","slug":"pvr-media-reviews-for-woocommerce","status":"publish","type":"plugin","link":"https:\/\/rhg.wordpress.org\/plugins\/pvr-media-reviews-for-woocommerce\/","author":23526898,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.3.1","stable_tag":"1.3.1","tested":"7.0.7","requires":"6.0","requires_php":"7.1","requires_plugins":null,"header_name":"Photo & Video Reviews for WooCommerce \u2014 PVR Media Reviews","header_author":"Lebedgor","header_description":"Photo and video reviews for WooCommerce with client-side compression.","assets_banners_color":"7381cb","last_updated":"2026-10-26 09:38:57","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/wordpress.org\/plugins\/pvr-media-reviews-for-woocommerce\/","header_author_uri":"https:\/\/demo.pv-reviews.site\/","rating":5,"author_block_rating":0,"active_installs":0,"downloads":1655,"num_ratings":2,"support_threads":9,"support_threads_resolved":9,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.1":{"tag":"1.0.1","author":"lebedgor","date":"2026-08-17 07:03:36","revision":3650580},"1.0.2":{"tag":"1.0.2","author":"lebedgor","date":"2026-08-25 18:04:17","revision":3665805},"1.0.3":{"tag":"1.0.3","author":"lebedgor","date":"2026-09-01 08:38:19","revision":3675663},"1.0.4":{"tag":"1.0.4","author":"lebedgor","date":"2026-09-03 15:40:07","revision":3680000},"1.0.7":{"tag":"1.0.7","author":"lebedgor","date":"2026-09-05 17:06:01","revision":3682675},"1.0.8":{"tag":"1.0.8","author":"lebedgor","date":"2026-09-06 10:16:31","revision":3683285},"1.0.9":{"tag":"1.0.9","author":"lebedgor","date":"2026-09-07 14:48:04","revision":3685136},"1.1.0":{"tag":"1.1.0","author":"lebedgor","date":"2026-09-09 08:13:53","revision":3687876},"1.1.1":{"tag":"1.1.1","author":"lebedgor","date":"2026-09-10 16:47:11","revision":3690219},"1.1.2":{"tag":"1.1.2","author":"lebedgor","date":"2026-09-12 07:29:21","revision":3692427},"1.1.3":{"tag":"1.1.3","author":"lebedgor","date":"2026-10-05 18:13:37","revision":3729434},"1.1.4":{"tag":"1.1.4","author":"lebedgor","date":"2026-10-06 09:13:37","revision":3730364},"1.1.5":{"tag":"1.1.5","author":"lebedgor","date":"2026-10-06 09:33:18","revision":3730424},"1.1.6":{"tag":"1.1.6","author":"lebedgor","date":"2026-10-06 11:07:44","revision":3730614},"1.1.7":{"tag":"1.1.7","author":"lebedgor","date":"2026-10-07 03:45:20","revision":3731824},"1.1.8":{"tag":"1.1.8","author":"lebedgor","date":"2026-10-07 14:52:30","revision":3732837},"1.1.9":{"tag":"1.1.9","author":"lebedgor","date":"2026-10-08 13:50:30","revision":3734756},"1.2.0":{"tag":"1.2.0","author":"lebedgor","date":"2026-10-09 09:34:41","revision":3736312},"1.2.1":{"tag":"1.2.1","author":"lebedgor","date":"2026-10-10 06:56:27","revision":3737677},"1.2.10":{"tag":"1.2.10","author":"lebedgor","date":"2026-10-23 08:26:21","revision":3761170},"1.2.2":{"tag":"1.2.2","author":"lebedgor","date":"2026-10-12 10:53:26","revision":3741160},"1.2.3":{"tag":"1.2.3","author":"lebedgor","date":"2026-10-13 13:33:23","revision":3744051},"1.2.4":{"tag":"1.2.4","author":"lebedgor","date":"2026-10-14 11:16:33","revision":3746143},"1.2.5":{"tag":"1.2.5","author":"lebedgor","date":"2026-10-15 12:47:43","revision":3748501},"1.2.6":{"tag":"1.2.6","author":"lebedgor","date":"2026-10-16 14:53:47","revision":3750601},"1.2.7":{"tag":"1.2.7","author":"lebedgor","date":"2026-10-21 23:32:29","revision":3759181},"1.2.8":{"tag":"1.2.8","author":"lebedgor","date":"2026-10-22 22:04:53","revision":3760609},"1.2.9":{"tag":"1.2.9","author":"lebedgor","date":"2026-10-23 01:59:11","revision":3760783},"1.3.0":{"tag":"1.3.0","author":"lebedgor","date":"2026-10-25 04:49:56","revision":3763936},"1.3.1":{"tag":"1.3.1","author":"lebedgor","date":"2026-10-26 09:38:57","revision":3765994}},"upgrade_notice":{"1.0.3":"<p>Adds configurable default admin name setting for review editing and store replies.<\/p>","1.0.2":"<p>Adds new language translations and refreshed plugin banners\/icons.<\/p>"},"ratings":{"1":0,"2":0,"3":0,"4":0,"5":2},"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3648449,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3648449,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3748498,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3748498,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.1","1.0.2","1.0.3","1.0.4","1.0.7","1.0.8","1.0.9","1.1.0","1.1.1","1.1.2","1.1.3","1.1.4","1.1.5","1.1.6","1.1.7","1.1.8","1.1.9","1.2.0","1.2.1","1.2.10","1.2.2","1.2.3","1.2.4","1.2.5","1.2.6","1.2.7","1.2.8","1.2.9","1.3.0","1.3.1"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3644394,"resolution":"1","location":"assets","locale":"","width":960,"height":960},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3644394,"resolution":"2","location":"assets","locale":"","width":960,"height":893},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3644394,"resolution":"3","location":"assets","locale":"","width":960,"height":851},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3665124,"resolution":"4","location":"assets","locale":"","width":3174,"height":1828},"screenshot-5.png":{"filename":"screenshot-5.png","revision":3644394,"resolution":"5","location":"assets","locale":"","width":960,"height":552},"screenshot-6.png":{"filename":"screenshot-6.png","revision":3644394,"resolution":"6","location":"assets","locale":"","width":960,"height":596},"screenshot-7.png":{"filename":"screenshot-7.png","revision":3644394,"resolution":"7","location":"assets","locale":"","width":960,"height":555},"screenshot-8.png":{"filename":"screenshot-8.png","revision":3665124,"resolution":"8","location":"assets","locale":"","width":3014,"height":1674},"screenshot-9.png":{"filename":"screenshot-9.png","revision":3665124,"resolution":"9","location":"assets","locale":"","width":1996,"height":1256}},"screenshots":{"1":"Customer review form on the product page with avatar upload, star rating selection, and text fields.","2":"Drag-and-drop media upload area with instant generated thumbnail previews and photo rotation controls.","3":"In-browser video compression in action with real-time progress preview and zero server load.","4":"Product review block displaying customer reviews, store owner reply badges, attached media thumbnails, and top product media showcase strip.","5":"Interactive review modal showing full review details on the right with built-in video player or high-resolution photo on the left.","6":"Clean, modern admin settings panel showing structured tabs and primary configuration options.","7":"Full product media gallery view with large thumbnails opening original media and attached review details.","8":"Custom criteria product ratings with visual progress breakdown per category (Pro).","9":"Automated review reminder emails and dynamic coupon incentives dashboard (Pro)."}},"plugin_section":[],"plugin_tags":[25588,149759,5431,171669,286],"plugin_category":[45,53],"plugin_contributors":[275459],"plugin_business_model":[],"class_list":["post-346235","plugin","type-plugin","status-publish","hentry","plugin_tags-customer-reviews","plugin_tags-photo-reviews","plugin_tags-product-reviews","plugin_tags-video-reviews","plugin_tags-woocommerce","plugin_category-ecommerce","plugin_category-ratings-and-reviews","plugin_contributors-lebedgor","plugin_committers-lebedgor"],"banners":{"banner":"https:\/\/ps.w.org\/pvr-media-reviews-for-woocommerce\/assets\/banner-772x250.png?rev=3748498","banner_2x":"https:\/\/ps.w.org\/pvr-media-reviews-for-woocommerce\/assets\/banner-1544x500.png?rev=3748498","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/pvr-media-reviews-for-woocommerce\/assets\/icon-128x128.png?rev=3648449","icon_2x":"https:\/\/ps.w.org\/pvr-media-reviews-for-woocommerce\/assets\/icon-256x256.png?rev=3648449","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/pvr-media-reviews-for-woocommerce\/assets\/screenshot-1.png?rev=3644394","caption":"Customer review form on the product page with avatar upload, star rating selection, and text fields."},{"src":"https:\/\/ps.w.org\/pvr-media-reviews-for-woocommerce\/assets\/screenshot-2.png?rev=3644394","caption":"Drag-and-drop media upload area with instant generated thumbnail previews and photo rotation controls."},{"src":"https:\/\/ps.w.org\/pvr-media-reviews-for-woocommerce\/assets\/screenshot-3.png?rev=3644394","caption":"In-browser video compression in action with real-time progress preview and zero server load."},{"src":"https:\/\/ps.w.org\/pvr-media-reviews-for-woocommerce\/assets\/screenshot-4.png?rev=3665124","caption":"Product review block displaying customer reviews, store owner reply badges, attached media thumbnails, and top product media showcase strip."},{"src":"https:\/\/ps.w.org\/pvr-media-reviews-for-woocommerce\/assets\/screenshot-5.png?rev=3644394","caption":"Interactive review modal showing full review details on the right with built-in video player or high-resolution photo on the left."},{"src":"https:\/\/ps.w.org\/pvr-media-reviews-for-woocommerce\/assets\/screenshot-6.png?rev=3644394","caption":"Clean, modern admin settings panel showing structured tabs and primary configuration options."},{"src":"https:\/\/ps.w.org\/pvr-media-reviews-for-woocommerce\/assets\/screenshot-7.png?rev=3644394","caption":"Full product media gallery view with large thumbnails opening original media and attached review details."},{"src":"https:\/\/ps.w.org\/pvr-media-reviews-for-woocommerce\/assets\/screenshot-8.png?rev=3665124","caption":"Custom criteria product ratings with visual progress breakdown per category (Pro)."},{"src":"https:\/\/ps.w.org\/pvr-media-reviews-for-woocommerce\/assets\/screenshot-9.png?rev=3665124","caption":"Automated review reminder emails and dynamic coupon incentives dashboard (Pro)."}],"raw_content":"<!--section=description-->\n<p>Live Demo: <a href=\"https:\/\/demo.pv-reviews.site\/\">demo.pv-reviews.site<\/a><\/p>\n\n<p><strong>Photo &amp; Video Reviews for WooCommerce (PVR Media Reviews)<\/strong> empowers your customers to share authentic visual proof by adding photos and videos to their product reviews.<\/p>\n\n<p>Unlike other media review plugins that overwhelm your web server, PVR processes and compresses videos directly in the customer's browser before upload. This delivers lightning-fast uploads, saves bandwidth and storage, and eliminates the need for server-side FFmpeg or expensive hosting upgrades.<\/p>\n\n<h4>Why Choose PVR Media Reviews?<\/h4>\n\n<ul>\n<li><strong>In-Browser Video Compression<\/strong> \u2014 Videos (MP4, WebM) are automatically compressed client-side via modern Canvas &amp; MediaRecorder APIs before uploading. Zero server CPU load.<\/li>\n<li><strong>Authentic Visual Social Proof<\/strong> \u2014 Let shoppers upload photos and videos to build buyer confidence and boost conversion rates.<\/li>\n<li><strong>100% Native WooCommerce Integration<\/strong> \u2014 Extends WooCommerce reviews using native WordPress comments (<code>comment_type = 'review'<\/code>). Clean, reliable, and portable.<\/li>\n<li><strong>Built-in Rich Snippets (Schema.org \/ JSON-LD)<\/strong> \u2014 Automatically injects <code>AggregateRating<\/code> and <code>Review<\/code> structured data so your star ratings appear directly in Google search results. Compatible with Yoast SEO and Rank Math.<\/li>\n<li><strong>Interactive Media Experience<\/strong> \u2014 Modern modal popups, responsive photo galleries, customer avatars with cropping, and built-in video player.<\/li>\n<li><strong>Community &amp; Trust<\/strong> \u2014 Helpful\/unhelpful voting on reviews and verified store owner reply badges.<\/li>\n<\/ul>\n\n<h4>Free Features<\/h4>\n\n<ul>\n<li><strong>Photo &amp; Video Reviews<\/strong> \u2014 Customers can attach multiple photos (JPG, PNG, WebP, GIF) and videos (MP4, WebM, MOV) to any review.<\/li>\n<li><strong>Client-Side Video Compression<\/strong> \u2014 Automatic compression in the user's browser with real-time progress preview and thumbnail creation.<\/li>\n<li><strong>Reviews Block Replacement Toggle<\/strong> \u2014 The plugin replaces the theme's reviews block on product pages with its own (rating summary, media galleries, helpful voting, store replies). A single \"Replace the theme reviews block\" switch in General Settings keeps the theme block when you don't need it \u2014 and when it's off, plugin scripts and styles are not loaded on product pages at all, so nothing slows the page down.<\/li>\n<li><strong>Reviews Block Anywhere \u2014 Shortcode &amp; Elementor Widget<\/strong> \u2014 <code>[pvr_reviews product=\"123\"]<\/code> renders the full reviews block on any page: landing pages, builder pages, classic content. Attributes: <code>product<\/code>, <code>per_page<\/code>, <code>show_more<\/code>, <code>pagination<\/code>. Elementor users get a native \"PVR Reviews\" widget under its own panel category \u2014 it works with the free Elementor version.<\/li>\n<li><strong>Reviews Block Widget Settings<\/strong> \u2014 A dedicated tab with shortcode defaults (default product, reviews per page, Show more, page numbers) and a live shortcode builder \u2014 configure once and copy the shortcode.<\/li>\n<li><strong>Flexible List Navigation<\/strong> \u2014 Configurable reviews per page with an AJAX \"Show more\" button and\/or numbered pagination. Navigation always stays on the current page and AJAX rebuilds keep the block's own settings.<\/li>\n<li><strong>Builder-Aware Asset Loading<\/strong> \u2014 Shortcode and widget content is detected inside Elementor, Bricks and Breakdance page data (even when the classic content is empty), so assets load exactly where the block is used \u2014 and nowhere else.<\/li>\n<li><strong>Standalone Review Form Widget<\/strong> \u2014 Place the complete review form on any page (e.g. a \"Share Your Experience\" page) with the [pvr_review_form] shortcode. Includes a product autocomplete with thumbnails; products can be preselected via the shortcode attribute, URL parameter or saved defaults.<\/li>\n<li><strong>Form Field Controls<\/strong> \u2014 Turn the reviewer avatar, photo upload, video upload, product info, Pros\/Cons, phone and city on or off; separate Disabled options for review replies and helpful voting.<\/li>\n<li><strong>Reviewer Avatars<\/strong> \u2014 Allow customers to upload custom profile pictures with an interactive crop tool.<\/li>\n<li><strong>Helpful Voting System<\/strong> \u2014 Visitors can vote whether a review was helpful or not.<\/li>\n<li><strong>Store Owner Replies<\/strong> \u2014 Respond publicly to customer reviews with a verified store badge.<\/li>\n<li><strong>Rich Snippets &amp; Schema Markup<\/strong> \u2014 Google Rich Snippets support (<code>AggregateRating<\/code> and <code>Review<\/code> JSON-LD) out of the box.<\/li>\n<li><strong>Email Notifications<\/strong> \u2014 Configurable email alerts for new reviews and customer replies.<\/li>\n<li><strong>Design Tab<\/strong> \u2014 Match your brand: light\/dark\/auto color scheme, custom accent, card and text colors, and corner radius, all applied through CSS variables.<\/li>\n<li><strong>Theme-Friendly Templates &amp; Filters<\/strong> \u2014 Theme-overridable templates (review item, list and form) plus documented output filters and hooks for deep customization.<\/li>\n<li><strong>Anti-Spam &amp; Moderation<\/strong> \u2014 Built-in honeypot protection, IP rate limiting, and optional Google reCAPTCHA v3 support.<\/li>\n<li><strong>Multilingual &amp; Translation Ready<\/strong> \u2014 Bundled translations for English, Spanish, French, German, Polish, Brazilian Portuguese, and Russian.<\/li>\n<\/ul>\n\n<h4>Pro Features<\/h4>\n\n<ul>\n<li><strong>Automated Review Reminders<\/strong> \u2014 Schedule automated follow-up emails after completed orders to request reviews.<\/li>\n<li><strong>Review Discount Coupons<\/strong> \u2014 Incentivize customers by automatically sending discount coupons for text, photo, or video reviews.<\/li>\n<li><strong>Multi-Criteria Ratings<\/strong> \u2014 Define custom rating criteria (e.g. Quality, Size, Shipping) per product category.<\/li>\n<li><strong>SEO All Reviews Page<\/strong> \u2014 Dedicated store-wide review hub with category filters and auto-generated, customizable SEO titles and meta descriptions for search traffic.<\/li>\n<li><strong>SEO Landing Pages<\/strong> \u2014 Dedicated landing pages for exact category\/manufacturer combinations and for single products \u2014 each with its own H1, title and meta description built from templates (<code>%product%<\/code>, <code>%count%<\/code>, <code>%rating%<\/code>, <code>%category%<\/code>, <code>%manufacturer%<\/code>, plus ready-made media phrases like <code>with 5 photos and 3 videos<\/code> that simply drop out when a product has no media). Product landings get their WordPress page created automatically; optional noindex per page.<\/li>\n<li><strong>Mass Generation &amp; Cleanup<\/strong> \u2014 Bulk-create landing pages for products that match your criteria (category + minimum reviews), and bulk-delete the ones that stop matching. Batched with live progress, a confirmation above 200 pages and a 500-per-run cap \u2014 and manually edited pages are never deleted.<\/li>\n<li><strong>Review Carousels &amp; Grid Widgets<\/strong> \u2014 Showcase your best reviews anywhere using flexible shortcodes and responsive sliders.<\/li>\n<li><strong>Analytics Dashboard<\/strong> \u2014 Track review volume, media coverage, coupon redemption rates, and rating distributions.<\/li>\n<\/ul>\n\n<h4>How It Works<\/h4>\n\n<ol>\n<li>Install and activate the plugin.<\/li>\n<li>An enhanced review form with photo\/video upload automatically appears on your WooCommerce product tabs \u2014 or keep your theme's block and switch the replacement off in one click.<\/li>\n<li>Shoppers upload media; videos compress smoothly in their browser.<\/li>\n<li>Reviews appear instantly with rich media galleries, helpful voting, and store reply threads.<\/li>\n<li>Place the block anywhere: <code>[pvr_reviews]<\/code> for the full reviews list, or <code>[pvr_review_form]<\/code> for a standalone \"Share Your Experience\" page \u2014 both work in any page builder, and Elementor gets a native widget.<\/li>\n<\/ol>\n\n<h4>Developer Friendly<\/h4>\n\n<ul>\n<li>Built entirely on native WordPress comments (<code>comment_type = 'review'<\/code>).<\/li>\n<li>Custom tables with <code>{$wpdb-&gt;prefix}pvr_<\/code> prefix for scalable performance.<\/li>\n<li>No external server dependencies or cloud subscription required.<\/li>\n<li>Comprehensive actions and filters for deep theme and plugin customization.<\/li>\n<\/ul>\n\n<h3>Live Demo<\/h3>\n\n<p>See PVR Media Reviews for WooCommerce in action on our live demo site:<\/p>\n\n<p><a href=\"https:\/\/demo.pv-reviews.site\/\">demo.pv-reviews.site<\/a><\/p>\n\n<h3>External Services<\/h3>\n\n<p>This plugin optionally connects to Google reCAPTCHA v3 to protect review submissions from spam.<\/p>\n\n<ul>\n<li><strong>What it is:<\/strong> Google reCAPTCHA is a security service that distinguishes humans from bots.<\/li>\n<li><strong>What data is sent:<\/strong> The reCAPTCHA token (generated client-side) and the page action label are sent to Google's verification endpoint when a review is submitted. No personal data beyond the IP address (which is handled by Google's own privacy policy) is transmitted.<\/li>\n<li><strong>When it is sent:<\/strong> Only when the \"reCAPTCHA\" option is enabled in plugin settings AND a visitor submits a review.<\/li>\n<li><strong>Links:<\/strong>\n\n<ul>\n<li><a href=\"https:\/\/policies.google.com\/terms\">Google reCAPTCHA Terms of Service<\/a><\/li>\n<li><a href=\"https:\/\/policies.google.com\/privacy\">Google Privacy Policy<\/a><\/li>\n<\/ul><\/li>\n<\/ul>\n\n<p>Note: Reviewer avatars are uploaded and stored locally on your WordPress server. This plugin does not use Gravatar or any external avatar service. Avatars are managed entirely through the plugin's own upload system (PVREV_Avatar class) and stored in the WordPress uploads directory.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the plugin files to <code>\/wp-content\/plugins\/pvr-media-reviews-for-woocommerce\/<\/code>, or install via the WordPress Plugins directory.<\/li>\n<li>Activate the plugin through the 'Plugins' menu in WordPress.<\/li>\n<li>Ensure WooCommerce is installed and active.<\/li>\n<li>Navigate to <strong>PVR Media Reviews &gt; Settings<\/strong> to customize upload limits, email notifications, and display options.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"can%20customers%20upload%20photos%20and%20videos%20to%20woocommerce%20reviews%3F\"><h3>Can customers upload photos and videos to WooCommerce reviews?<\/h3><\/dt>\n<dd><p>Yes. PVR Media Reviews adds intuitive photo and video upload fields to your WooCommerce review forms, enabling customers to easily attach images and video clips to their feedback.<\/p><\/dd>\n<dt id=\"does%20this%20plugin%20slow%20down%20my%20web%20server%3F\"><h3>Does this plugin slow down my web server?<\/h3><\/dt>\n<dd><p>No. All video compression happens directly inside the customer's browser before upload. Because your server never handles raw, uncompressed video, there is zero extra CPU load, no FFmpeg requirement, and no need for specialized video hosting.<\/p><\/dd>\n<dt id=\"does%20it%20support%20google%20rich%20snippets%20%28star%20ratings%20in%20search%29%3F\"><h3>Does it support Google Rich Snippets (Star Ratings in Search)?<\/h3><\/dt>\n<dd><p>Yes. The plugin automatically adds Schema.org structured data (<code>AggregateRating<\/code> and <code>Review<\/code> JSON-LD) to your product pages so star ratings can display in Google search results. It is fully compatible with WooCommerce, Yoast SEO, and Rank Math.<\/p><\/dd>\n<dt id=\"does%20this%20plugin%20replace%20woocommerce%20reviews%3F\"><h3>Does this plugin replace WooCommerce reviews?<\/h3><\/dt>\n<dd><p>Not the data \u2014 reviews stay 100% native WordPress comments, fully portable and compatible with other WooCommerce tools. On product pages the plugin replaces the theme's reviews <em>block<\/em> with its own richer one (summary, media, voting, replies), and this is controlled by a single \"Replace the theme reviews block\" switch in General Settings \u2014 turn it off and the theme's block stays untouched.<\/p><\/dd>\n<dt id=\"what%20video%20formats%20and%20sizes%20are%20supported%3F\"><h3>What video formats and sizes are supported?<\/h3><\/dt>\n<dd><p>The plugin supports MP4, WebM, and MOV video formats. The maximum video upload size defaults to 500 MB (fully configurable in settings), and videos can be automatically compressed in the browser.<\/p><\/dd>\n<dt id=\"does%20it%20work%20without%20woocommerce%3F\"><h3>Does it work without WooCommerce?<\/h3><\/dt>\n<dd><p>No. PVR Media Reviews requires WooCommerce to be installed and active.<\/p><\/dd>\n<dt id=\"can%20i%20place%20the%20review%20form%20on%20a%20custom%20page%3F\"><h3>Can I place the review form on a custom page?<\/h3><\/dt>\n<dd><p>Yes. Use the [pvr_review_form] shortcode on any page or post \u2014 for example a standalone \"Share Your Experience\" page. With picker=\"yes\" the customer chooses a product by name (with thumbnails and optional review counts). Products can also be preselected via the product attribute, the ?pvr_product= URL parameter, or the saved default in the Review Form Widget settings tab.<\/p><\/dd>\n<dt id=\"can%20i%20show%20the%20reviews%20block%20on%20a%20page%20built%20with%20elementor%2C%20divi%2C%20bricks%20or%20breakdance%3F\"><h3>Can I show the reviews block on a page built with Elementor, Divi, Bricks or Breakdance?<\/h3><\/dt>\n<dd><p>Yes. Elementor users get a native \"PVR Reviews\" widget (it works with the free Elementor version). In any other builder use its built-in Shortcode element with <code>[pvr_reviews product=\"123\"]<\/code> \u2014 attributes let you set the product, reviews per page, \"Show more\" and pagination. Content inside Elementor, Bricks and Breakdance page data is detected automatically, so assets load even when the classic editor content is empty.<\/p><\/dd>\n<dt id=\"can%20i%20keep%20my%20theme%27s%20reviews%20block%3F\"><h3>Can I keep my theme's reviews block?<\/h3><\/dt>\n<dd><p>Yes. Settings \u2192 General \u2192 \"Replace the theme reviews block\" controls the replacement. Turn it off and the theme keeps its native block \u2014 plugin scripts and styles are not loaded on product pages at all, so they don't slow the page down. Reviews still work normally: they are saved, moderated and notified as usual.<\/p><\/dd>\n<dt id=\"can%20i%20create%20seo%20landing%20pages%20for%20reviews%3F\"><h3>Can I create SEO landing pages for reviews?<\/h3><\/dt>\n<dd><p>In the Pro version, yes \u2014 for category\/manufacturer combinations and for individual products. Each landing gets its own H1, title and meta description from templates with variables like %product%, %count%, %rating%, %category%, %manufacturer% and ready-made media phrases (they drop out automatically when a product has no photos or videos). Product pages are created automatically, and mass generation\/deletion lets you create or clean up hundreds of them by criteria such as category and minimum review count.<\/p><\/dd>\n<dt id=\"can%20i%20customize%20the%20design%20of%20the%20review%20section%3F\"><h3>Can I customize the design of the review section?<\/h3><\/dt>\n<dd><p>Yes. The Design tab controls the color scheme (light\/dark\/auto) and the accent, card, text and border colors plus corner radius \u2014 all applied through CSS variables. Templates (review-item.php, review-list.php, review-form.php) can be overridden from your theme, and output filters such as pvrev_review_item_html let you adjust the markup without touching plugin files.<\/p><\/dd>\n<dt id=\"can%20i%20disable%20replies%2C%20voting%20or%20media%20uploads%3F\"><h3>Can I disable replies, voting or media uploads?<\/h3><\/dt>\n<dd><p>Yes. \"Who can reply\" and \"Who can vote\" include a Disabled option, and the reviewer avatar, photo upload, video upload and product info blocks can each be turned off in Settings \u2192 Display fields. All toggles are enforced server-side, not just hidden.<\/p><\/dd>\n<dt id=\"is%20there%20a%20pro%20version%3F\"><h3>Is there a Pro version?<\/h3><\/dt>\n<dd><p>Yes. The Pro version unlocks automated review reminder emails, discount coupons for reviews, custom category criteria ratings, review carousels\/grids, an analytics dashboard, a dedicated SEO All Reviews hub, and SEO landing pages for categories, brands and single products \u2014 with template-driven titles\/meta descriptions plus mass generation and cleanup of those landing pages.<\/p><\/dd>\n<dt id=\"what%20php%20version%20is%20required%3F\"><h3>What PHP version is required?<\/h3><\/dt>\n<dd><p>PHP 7.1 or higher (PHP 7.4+ or 8.x recommended).<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.3.1<\/h4>\n\n<ul>\n<li>New: media viewer templates are theme-overridable \u2014 media-review-modal.php, media-grid-modal.php and the reviews list wrapper join the override system<\/li>\n<li>New: Pro widget templates (review-carousel, review-grid, media-gallery, all-reviews-card) support theme overrides the same way<\/li>\n<li>New: every overridable template documents its override contract in the file header, and the admin warns when a theme copy is outdated<\/li>\n<\/ul>\n\n<h4>1.3.0<\/h4>\n\n<ul>\n<li>Fix: media viewer no longer jumps to the last item when background preloading reaches the start of the media list<\/li>\n<li>Fix: media counter no longer drifts while skeleton placeholders are swapped for loaded reviews in the background<\/li>\n<li>Fix: Next\/Prev navigation no longer skips items when a media card is removed from the page in the background<\/li>\n<li>Improvement: media already present in the viewer is never duplicated in the navigation when newly loaded reviews arrive<\/li>\n<\/ul>\n\n<h4>1.2.10<\/h4>\n\n<ul>\n<li>Fix: video seek bar rendering as a doubled bar with a recolored thumb on themes that style input[type=range]<\/li>\n<\/ul>\n\n<h4>1.2.9<\/h4>\n\n<ul>\n<li>Fix: review details modal no longer shifts on mobile when the browser address bar shows or hides<\/li>\n<li>Fix: all-media grid tiles overlapping \u2014 the grid modal now scrolls its window instead of squeezing everything onto one screen<\/li>\n<li>Improvement: product mini-card in the details modal looks identical on every page (all-reviews hub, My Reviews)<\/li>\n<li>Improvement: reviews list header stacks vertically on phones so the \"Write a review\" button is not squeezed<\/li>\n<\/ul>\n\n<h4>1.2.8<\/h4>\n\n<ul>\n<li>Fix: photo and video uploads not attaching to reviews<\/li>\n<li>Improvement: failed media uploads now show a Retry upload button instead of a silent success screen<\/li>\n<li>Fix: broken photo thumbnail URLs in the upload response<\/li>\n<li>Fix: Reply button did nothing in the details modal on pages without the reviews list<\/li>\n<li>New: product mini-card at the top of the details modal sidebar<\/li>\n<li>Fix: review form stretching past the mobile viewport<\/li>\n<li>Fix: text inputs losing the form styling on some themes<\/li>\n<li>Updated plugin banners<\/li>\n<\/ul>\n\n<h4>1.2.7<\/h4>\n\n<ul>\n<li>New: import preset for CusRev (Customer Reviews for WooCommerce)<\/li>\n<li>Improvement: CusRev reply rows attach to their reviews as store replies<\/li>\n<\/ul>\n\n<h4>1.2.6<\/h4>\n\n<ul>\n<li>New: reviews import wizard (Judge.me CSV\/API and any store CSV with field mapping)<\/li>\n<li>New: reviews export to CSV with status filter<\/li>\n<li>Improvement: Import\/Export tabs merged into one tab<\/li>\n<\/ul>\n\n<h4>1.2.5<\/h4>\n\n<ul>\n<li>New: product card at the top of the review details modal sidebar<\/li>\n<li>Fix: Reply button in the details modal works on every surface<\/li>\n<li>Improvement: product data resolved once per request instead of per card<\/li>\n<\/ul>\n\n<h4>1.2.4<\/h4>\n\n<ul>\n<li>New (Pro): [pvr_media_gallery] block with filter chips and an Elementor widget<\/li>\n<li>New (Pro): gallery thumbnail format option (10 ratios)<\/li>\n<li>Fix: Elementor widget registration on Elementor 3.5+ and 4<\/li>\n<li>Fix: block editor \"not a valid JSON response\" error with shortcodes on the page<\/li>\n<li>Improvement: media thumbnails open the details modal instantly with a skeleton<\/li>\n<li>Improvement: details modal shows the full \"Lightbox Image Max\" image<\/li>\n<li>Improvement: modal flip-through follows the gallery block's sort and filters<\/li>\n<li>Updated translations (EN, RU, ES)<\/li>\n<\/ul>\n\n<h4>1.2.3<\/h4>\n\n<ul>\n<li>New (Pro): SEO landing pages for individual products<\/li>\n<li>New (Pro): mass generation and cleanup of landing pages in batches<\/li>\n<li>Fix: uploaded media no longer stored with 0600 permissions (403 on URLs)<\/li>\n<li>Improvement: reviews block pagination stays on the current page<\/li>\n<li>Improvement: AJAX rebuild keeps the block's own Show more\/pagination settings<\/li>\n<li>Updated readme description<\/li>\n<\/ul>\n\n<h4>1.2.2<\/h4>\n\n<ul>\n<li>New: \"Replace the theme reviews block\" toggle in Settings \u2192 General<\/li>\n<li>New: [pvr_reviews] shortcode renders the full reviews block on any page<\/li>\n<li>New: Reviews Block Widget settings tab with a live shortcode builder<\/li>\n<li>New: native Elementor widget \"PVR Reviews\" (works with free Elementor)<\/li>\n<li>Improvement: builder content detected in post meta for asset loading<\/li>\n<li>Improvement: one reviews block per page (shortcode and replacement dedup)<\/li>\n<li>Fix: write-review button follows the target product's comment status<\/li>\n<li>Fix: escaped quotes in builder JSON breaking product resolution<\/li>\n<\/ul>\n\n<h4>1.2.1<\/h4>\n\n<ul>\n<li>New: optional review title (headline) with length limits<\/li>\n<li>Fix: integration-supplied titles no longer wiped by the admin editor<\/li>\n<li>Fix: admin saves without hardcoded 2,000\/5,000-character trims<\/li>\n<li>Fix: 16,000-character ceiling on every save path<\/li>\n<li>Fix: guest name limit clamped to the database column size<\/li>\n<li>Fix: status-only reply updates from the Comments list<\/li>\n<li>Fix: admin editor shows the server's validation message<\/li>\n<li>Improvement: moderation notice removed; My Reviews cards show the headline<\/li>\n<\/ul>\n\n<h4>1.2.0<\/h4>\n\n<ul>\n<li>New: daily reply rate limits (per IP \/ per user)<\/li>\n<li>Security: shared client-IP resolver for votes, limits, tokens and reCAPTCHA<\/li>\n<li>Security: votes rejected for non-review comments; unapproved reviews protected<\/li>\n<li>Security: guest avatar uploads require the page upload token<\/li>\n<li>Fix: 500 error on repeated logged-in votes<\/li>\n<li>Fix: Review Max = 0 no longer truncates text; Reply Min\/Max validated<\/li>\n<li>Fix: media IDs added to the pvrev_review_normalize_rating filter payload<\/li>\n<li>Fix: edge prev\/next clicks in the details modal no longer swallowed<\/li>\n<li>Improvement: rate-limit messages translated in all 7 bundled languages<\/li>\n<\/ul>\n\n<h4>1.1.9<\/h4>\n\n<ul>\n<li>Fix: review permission error in \"Only customers (bought product)\" mode<\/li>\n<li>Fix: reply permission in \"Only customers\" mode<\/li>\n<li>New: \"Show only available products\" option in the Review Form Widget<\/li>\n<\/ul>\n\n<h4>1.1.8<\/h4>\n\n<ul>\n<li>New: product picker opens the full product list on focus<\/li>\n<li>Improvement: picker placeholder text updated<\/li>\n<li>Improvement: picker respects the shortcode's limit and sort attributes<\/li>\n<li>Improvement: picker requests sequenced (no stale overwrites)<\/li>\n<li>Improvement: picker aria-expanded announcements<\/li>\n<li>Fix: duplicated submit listener on the standalone form<\/li>\n<li>Fix: avatar crop dialog accumulating a resize listener<\/li>\n<li>Fix: Enter submitting the form while the product list is open<\/li>\n<li>Fix: sticky success screen on the standalone form<\/li>\n<\/ul>\n\n<h4>1.1.7<\/h4>\n\n<ul>\n<li>Fix: media upload after changing the product on the standalone form<\/li>\n<li>New: product picker starts in a neutral state<\/li>\n<li>Improvement: product switch preserves everything already typed<\/li>\n<li>Fix: Reviews Page assets on WordPress 6.9+<\/li>\n<li>Improvement: Submit buttons right-aligned in forms<\/li>\n<li>Improvement: neutral image placeholder for products without a featured image<\/li>\n<li>Improvement: product picker list cached for 10 minutes<\/li>\n<li>Improvement: media limits clamped to 0\u201310 on client and server<\/li>\n<li>Cleanup: removed the redundant hint below the media uploader<\/li>\n<\/ul>\n\n<h4>1.1.6<\/h4>\n\n<ul>\n<li>New: form field toggles in Settings \u2192 Display fields<\/li>\n<li>New: \"Disabled\" option for \"Who can reply\" and \"Who can vote\"<\/li>\n<li>Improvement: Submit buttons aligned to the right of the form<\/li>\n<li>Improvement: product picker accessibility (combobox roles, aria-expanded)<\/li>\n<li>Improvement: neutral placeholder for products without a featured image<\/li>\n<li>Improvement: product picker list cached for 10 minutes<\/li>\n<li>Fix: media limits clamped consistently to 0\u201310<\/li>\n<li>Fix: schema auto-repair backs off after a failed attempt<\/li>\n<li>Fix: picker dropdown failing to render results<\/li>\n<\/ul>\n\n<h4>1.1.5<\/h4>\n\n<ul>\n<li>Fix: runtime schema guard restores missing plugin tables automatically<\/li>\n<\/ul>\n\n<h4>1.1.4<\/h4>\n\n<ul>\n<li>New: Review Form widget with the [pvr_review_form] shortcode<\/li>\n<li>New: product selector with autocomplete and thumbnails<\/li>\n<li>New: Review Form Widget settings tab with a shortcode builder<\/li>\n<li>New: shortcode attributes (product, picker, limit, sort, counts, exclude, ids)<\/li>\n<li>New: per-link product preselect via ?pvr_product= URL parameter<\/li>\n<li>Design: unified review form layout<\/li>\n<li>Fix: pvrev_frontend_data filter now actually applied<\/li>\n<li>Fix: admin product\/category autocomplete failing with 400<\/li>\n<\/ul>\n\n<h4>1.1.3<\/h4>\n\n<ul>\n<li>New: Design tab \u2014 light\/dark\/auto schemes and full color customization<\/li>\n<li>Improvement: Auto mode detects the site theme instead of the OS setting<\/li>\n<li>New: theme-overridable templates with an outdated-copy admin notice<\/li>\n<li>New: developer filters pvrev_review_item_html, pvrev_review_list_html, pvrev_frontend_css_vars<\/li>\n<li>Admin: Design tab moved next to System Info<\/li>\n<li>Updated translations (EN, RU, ES)<\/li>\n<\/ul>\n\n<h4>1.1.2<\/h4>\n\n<ul>\n<li>Fix: all-media grid on the reviews hub (filters, grouping, infinite scroll)<\/li>\n<li>Improvement: infinite flip-through in the details modal in both directions<\/li>\n<li>Improvement: new default image quality presets<\/li>\n<li>New (Pro): configurable block titles for review widgets<\/li>\n<li>Fix (Pro): settings sub-tab jump and shortcode preview reset after save<\/li>\n<li>Fix: stray Renew link for lifetime licenses<\/li>\n<li>Updated translations (EN, RU, ES)<\/li>\n<\/ul>\n\n<h4>1.1.1<\/h4>\n\n<ul>\n<li>Improvement: all emails rebuilt with a shared branded template and accent colors<\/li>\n<li>New: media follow-up email for approved reviews<\/li>\n<li>Improvement: plugin From name\/address applies to plugin emails only<\/li>\n<li>Improvement: avatar URLs versioned by file mtime<\/li>\n<li>New: License tab license type display, Renew row, Re-install button<\/li>\n<li>New (Pro): per-breakpoint display settings for carousel and grid<\/li>\n<li>New: pvrev_admin_review_edit_bottom hook in the review editor<\/li>\n<li>Fix: bulk-approve now sends the customer confirmation email<\/li>\n<li>Fix (Pro): landing pages silently failing to save<\/li>\n<li>Updated translations (ES, FR, DE, PL, PT-BR)<\/li>\n<\/ul>\n\n<h4>1.1.0<\/h4>\n\n<ul>\n<li>Change: license server migrated to admin.pv-reviews.site<\/li>\n<li>New (Pro): editable default coupon email\/notice texts<\/li>\n<li>New (Pro): coupon restrictions with searchable multi-select pickers<\/li>\n<li>Improvement (Pro): Coupons tab split into sub-tabs<\/li>\n<li>New: Pros\/Cons minimum length limit<\/li>\n<li>Improvement: dynamic media section title in the review form<\/li>\n<li>Improvement: upload previews show the compressed file size<\/li>\n<li>Fix: settings assets not loading on some screens<\/li>\n<li>Improvement: reply auto-approve setting clarified<\/li>\n<li>Updated Sortable.js to 1.15.7<\/li>\n<\/ul>\n\n<h4>1.0.9<\/h4>\n\n<ul>\n<li>Improvement (Pro): Landing Pages list with live search, filters and pagination<\/li>\n<li>Fix (Pro): \"The link you followed has expired\" on landing saves<\/li>\n<li>New (Pro): Analytics date-range filter, trend chart, low-rated products table<\/li>\n<li>New (Pro): \"Review scope\" option for category pages<\/li>\n<li>Fix: %placeholders% corrupted on save in SEO templates<\/li>\n<li>Improvement: widget queries cached (1 hour)<\/li>\n<li>Updated Pro tab previews<\/li>\n<\/ul>\n\n<h4>1.0.8<\/h4>\n\n<ul>\n<li>New (Pro): customer media strip with a \"Show all media\" grid on the reviews page<\/li>\n<li>Improvement (Pro): restyled filters and sorting on the reviews page<\/li>\n<li>Fix (Pro): invalid wpdb::prepare notice with no filter selected<\/li>\n<li>Improvement: plugin From name\/address applies to plugin emails only<\/li>\n<li>Fix: duplicate admin\/author notifications for reviews with media<\/li>\n<li>Fix: author confirmation on manual approval<\/li>\n<li>Fix (Pro): coupons not being issued (hook mismatch)<\/li>\n<li>Fix (Pro): broken unsubscribe link and UTF-8 encoding in reminders<\/li>\n<li>Fix: PHP limits on Apache; added CGI\/FastCGI and LiteSpeed support<\/li>\n<li>Improvement: notice that .user.ini changes take ~5 minutes<\/li>\n<\/ul>\n\n<h4>1.0.7<\/h4>\n\n<ul>\n<li>New (Pro): manufacturer filter (WooCommerce Brands) on the reviews page<\/li>\n<li>Improvement (Pro): interdependent category\/manufacturer filter lists<\/li>\n<li>New (Pro): SEO template sets for filters; title\/description honor filters<\/li>\n<li>Fix (Pro): category filter in Grid and Carousel widgets<\/li>\n<li>Fix (Pro): criteria admin CRUD and status toggle<\/li>\n<li>Improvement: assets cache-busted by file modification time<\/li>\n<\/ul>\n\n<h4>1.0.6<\/h4>\n\n<ul>\n<li>Improvement: AJAX filtering\/sorting\/pagination on the reviews page<\/li>\n<li>Fix: pagination broken by canonical redirect<\/li>\n<li>Fix: Date sort direction and category SEO persistence<\/li>\n<li>Change: license network requests isolated from page rendering<\/li>\n<li>Fix: invalid regex for wildcard license domains<\/li>\n<li>Improvement: reactivation attempts rate-limited<\/li>\n<li>Improvement: file size shown in the admin review editor<\/li>\n<\/ul>\n\n<h4>1.0.3<\/h4>\n\n<ul>\n<li>Added: default admin name setting<\/li>\n<li>Fixed: auto-approve mode and Pros &amp; Cons toggles not saving<\/li>\n<li>Fixed: video\/photo max size display in the review form<\/li>\n<\/ul>\n\n<h4>1.0.2<\/h4>\n\n<ul>\n<li>Added: Spanish, French, German, Polish and Brazilian Portuguese translations<\/li>\n<li>Updated plugin banners and icons<\/li>\n<\/ul>\n\n<h4>1.0.1<\/h4>\n\n<ul>\n<li>Minor bug fixes and stability improvements<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release<\/li>\n<li>Photo and video uploads for WooCommerce reviews<\/li>\n<li>Client-side video compression<\/li>\n<li>Automatic video thumbnails<\/li>\n<li>Helpful voting<\/li>\n<li>Store reply threads<\/li>\n<li>Reviewer avatars with crop modal<\/li>\n<li>Schema markup for rich snippets<\/li>\n<li>Email notifications<\/li>\n<li>Custom rating criteria, reminders, coupons, analytics (Pro)<\/li>\n<li>All Reviews page with filters and SEO templating (Pro)<\/li>\n<li>Carousel and grid layouts (Pro)<\/li>\n<li>Full i18n support (7 languages)<\/li>\n<\/ul>","raw_excerpt":"Photo and video reviews for WooCommerce. Browser-side video compression, media galleries, helpful voting and store replies.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/rhg.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/346235","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/rhg.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/rhg.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/rhg.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=346235"}],"author":[{"embeddable":true,"href":"https:\/\/rhg.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/lebedgor"}],"wp:attachment":[{"href":"https:\/\/rhg.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=346235"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/rhg.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=346235"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/rhg.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=346235"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/rhg.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=346235"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/rhg.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=346235"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/rhg.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=346235"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}