WordPress plugin intelligence profile

Recently Viewed Products for WooCommerce – Carousel, Widget, Block & Email

WooCommerce recently viewed products in a grid, list or carousel via shortcode, widget, block, Elementor, plus most viewed and follow-up emails.

WP PlugIndex snapshot

Current directory snapshot

Tested up to WordPress 7.0
Current version2.3.0
WordPress coverageTested up to WordPress 7.0
Minimum stackWP 6.0 · PHP 7.4
Directory statusactive
Last directory update26 Jun 20264mo ago
Active installations1K+Adoption metric — not a quality score
WordPress.org rating4.7 / 5 from 3 ratings
Official packageDirect from WordPress.org

Repository metrics are context, not quality scores. Active installations measure adoption and can strongly reflect a plugin’s age and historical popularity. Ratings, recent updates and “Tested up to” metadata also do not guarantee modern code, error-free operation, security, feature completeness or suitability for a particular site. Why active installs don’t tell the whole story →

WP PlugIndex currently records Recently Viewed Products for WooCommerce – Carousel, Widget, Block & Email version 2.3.0 as active, updated 4mo ago and tested up to WordPress 7.0.

Overview

About this plugin

Recently Viewed Products for WooCommerce shows each customer the WooCommerce products they recently viewed — and turns that browsing interest into more sales. Display recently viewed products in a responsive grid, list, or product carousel automatically on single product pages, and anywhere else via the shortcode, sidebar widget, Gutenberg block, or Elementor widget.

If you want a fast, lightweight, cache-friendly recently viewed products plugin for WooCommerce that also surfaces your most viewed products store-wide and sends automated follow-up emails, this is it. It works as a lightweight product recommendations / cross-sell helper that is HPOS-compatible, translation-ready, RTL-friendly, multisite-aware, and passes the WordPress Plugin Check rulesets.

🚀 Why choose this recently viewed products plugin?

  • 🖼️ Three layouts — recently viewed products grid, list, or carousel slider.
  • ⚡ No jQuery — the carousel is dependency-free, lightweight, and fast.
  • 🧭 Five display surfaces — shortcode, automatic single-product placement, sidebar widget, Gutenberg block, and Elementor widget.
  • 👥 Guest + logged-in tracking — cookie tracking for guests, optional cross-device database history for signed-in customers.
  • 🔥 Most viewed products — surface your store’s most popular products automatically.
  • ✉️ Follow-up emails — win back inactive customers with the products they viewed and a single-use coupon.
  • 🧩 Cache friendly — works with WP Rocket, W3 Total Cache, LiteSpeed Cache, and CDNs.
  • 🛒 HPOS compatible — fully tested with WooCommerce High-Performance Order Storage.

📍 Display recently viewed products anywhere

  • Single product pages — automatic placement with a position you choose: before the product summary, after the product summary, or after the product tabs.
  • Shortcode — drop [rvpw_products] into any page, post, or widget area to show WooCommerce recently viewed products on the shop, cart, checkout, or any other location.
  • Sidebar widget — a recently viewed products widget that works in classic and block-based widget areas.
  • Gutenberg block — a recently viewed products block with a live, server-side-rendered preview right in the editor.
  • Elementor widget — a native Elementor recently viewed products widget that loads only when Elementor is active.

🎠 Carousel, grid & list layouts

  • Product carousel — autoplay, configurable autoplay speed, navigation arrows, pagination dots, infinite loop, and responsive items-per-view, with no jQuery.
  • Grid layout — clean, responsive recently viewed products grid.
  • List layout — compact vertical list.
  • Compact variant — add the rvpw-compact CSS class for a tighter style ideal for narrow sidebars.
  • Per-device columns — mobile (1–2), tablet (1–4), and desktop (1–6).
  • Toggle card elements — show or hide product image, title, price, star rating, and add-to-cart button.
  • Equal-height cards — a modern, responsive card design that adapts to any theme or page builder.

🧠 Smart tracking engine

  • Cookie tracking for guests — cache-friendly, stores only product IDs in a first-party cookie ( rvpw_recently_viewed_{site_id} ).
  • Cross-device history — optional database history so recently viewed products follow signed-in customers across devices, merged from the guest cookie at login and pruned daily by a configurable retention period.
  • History sources — automatic, browser cookie only, saved account history, or most viewed (store-wide popularity, cached top-N query).
  • Flexible sorting — recently viewed, most viewed, price low-to-high, price high-to-low, newest products, or random.
  • Configurable limits — cookie expiry from 1–365 days (default 30) and 1–100 max stored products.
  • Smart filters — show in-stock only, exclude already-purchased products (signed-in customers), hide free products, and exclude specific categories.

📈 Marketing, analytics & follow-up emails

  • Analytics screen — see your most viewed products and an orders proxy (from the WooCommerce Analytics order-product lookup table when available) with a 7/30/90-day attribution window.
  • Follow-up emails — automatically email signed-in inactive customers the products they viewed, with an optional auto-generated single-use coupon (percentage or fixed cart discount), configurable validity, and a one-click unsubscribe link. Uses Action Scheduler when available, with a WP-Cron fallback, plus a Send-test-email button.
  • Dedicated page — a “Recently Viewed” page is created automatically on activation.
  • Custom styling — a Custom CSS box and a custom CSS class field to fine-tune styling without editing theme files.

🛠️ Built right

  • WooCommerce dependency check and full HPOS compatibility.
  • Conditional asset loading — CSS and JS load only on pages where the section renders.
  • Cache-friendly and CDN-friendly (WP Rocket, W3 Total Cache, LiteSpeed Cache).
  • Custom tables created via dbDelta with a versioned migration; no order data is touched.
  • Translation-ready (text domain recently-viewed-products-for-woocommerce, /languages ) and RTL-compatible CSS using logical properties.
  • Multisite-aware cookie (scoped by site ID) and an accessible (WCAG), tabbed admin UI.
  • Passes the WordPress Plugin Check (PHPCS) rulesets.

🔧 Shortcode

[rvpw_products]

Shortcode attributes: title, limit, columns, layout (grid|list|carousel), sort (recent|most_viewed|price_asc|price_desc|date|random), source (auto|cookie|db|most_viewed), show_image, show_title, show_price, show_rating, show_cart, hide_current, class.

Example — recently viewed products carousel:

[rvpw_products layout=”carousel” limit=”8″ columns=”4″ sort=”recent”]

Example — most viewed products grid:

[rvpw_products layout=”grid” source=”most_viewed” limit=”6″]

Privacy & Cookies

This plugin remembers the products a visitor has viewed by storing their IDs in a single first-party cookie in the visitor’s own browser.

  • Cookie name: rvpw_recently_viewed_{site_id} (the site ID keeps multisite installs separate).
  • Cookie contents: a list of WooCommerce product IDs only (for example 42|17|8 ). No names, emails, IP addresses, or other personal data are stored.
  • Lifetime: a configurable cookie expiry in the plugin settings (1–365 days; 30 by default).
  • Scope: the cookie is read and written on your own site only. The plugin does not transmit any data to external services, does not include third-party trackers, and does not write to the database for guest tracking.
  • Control: you can disable guest tracking and/or logged-in tracking in the plugin settings. Turning the plugin off stops all tracking.

Optional database storage (off by default): if you enable logged-in history storage in the plugin settings, the plugin stores rows of (user ID, product ID, timestamp) for signed-in customers so their history follows them across devices. This still contains only product IDs and the customer’s existing account ID — no new personal data. Rows are pruned automatically after the configured retention period.

A store-wide view counter records per-product totals (no user identifiers).

Optional follow-up emails (off by default): if enabled, the plugin emails signed-in inactive customers about products they viewed, with an optional single-use coupon, and every email includes a one-click unsubscribe link.

Because the core feature stores only non-personal product IDs, it is generally outside the scope of GDPR personal-data processing. If you enable database history or follow-up emails, review your privacy policy accordingly. If your site shows a cookie consent banner, you may also wish to list this functional cookie for completeness.

When the plugin is deleted, enable the uninstall cleanup option in the plugin settings to also drop the plugin’s custom tables and options. Visitor cookies expire on their own according to the configured lifetime.

WordPress.org metadata

Plugin tags

Topics listed for this plugin in the WordPress.org directory.

  • most viewed products
  • product carousel
  • recently viewed products
  • recently viewed
  • woocommerce recently viewed
Compatibility & maintenance

Compatibility & maintenance

Tested up to WordPress 7.0

Not yet marked as tested with WordPress 7.1. WordPress.org currently lists Tested up to 7.0.

Current WordPress releaseWordPress 7.1
WordPress.org Tested up to7.0
Minimum requirementsWordPress 6.0 · PHP 7.4
Update activity26 Jun 20264mo ago

“Tested up to” is directory metadata supplied by the plugin author. WP PlugIndex does not turn an older declaration into a claim that the plugin is incompatible.

Changes recorded by WP PlugIndex

Recent tracked changes

No tracked version or compatibility changes have been recorded by WP PlugIndex yet.

Tracking & source

WP PlugIndex tracks public WordPress.org directory metadata and records selected version, compatibility and availability changes as they are detected.

Plugin watchlist

Watch this plugin

Sign in to your WP PlugIndex account or create a free account. Free accounts can watch up to 5 plugins and see what changed.

Watch limit

Watchlist limit reached

You have reached your current active watch limit.