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

Changelog

2.3.0

  • New: Carousel layout with autoplay, arrows, pagination dots, loop, and responsive items-per-view (dependency-free).
  • New: Sidebar widget (classic + block widget areas).
  • New: Gutenberg block with live server-side preview.
  • New: Elementor widget (loads only when Elementor is active).
  • New: Sorting — recently viewed, most viewed, price, newest, or random.
  • New: “Most viewed” store-wide popularity source, with a cached top-N query.
  • New: Optional database-backed history for signed-in customers (cross-device), merged from the guest cookie at login, with daily pruning.
  • New: Smart filters — in-stock only, exclude already-purchased, hide free products, exclude categories.
  • New: Analytics screen with most-viewed products and an orders proxy (from WooCommerce Analytics when available).
  • New: Optional follow-up emails to inactive customers with their viewed products and a single-use coupon, plus one-click unsubscribe (Action Scheduler when available, WP-Cron fallback).
  • New: Dedicated “Recently Viewed” page created on activation, and a custom CSS box.
  • Improved: All display surfaces (shortcode, placement, widget, block, Elementor) now share one renderer/provider, so output and behaviour are always consistent.
  • Compatibility: Custom tables are created via dbDelta with a versioned migration; no order data is touched (HPOS-safe).
  • Backward compatible: all existing settings, the shortcode, the cookie format, and placement hooks are unchanged; every new setting defaults to the previous behaviour.

2.2.0

  • Fixed: saving one settings tab no longer resets the other tabs to defaults (all settings now submit together).
  • Fixed: responsive column settings are now respected for automatic product-page placement (output is no longer re-filtered, which could strip the layout CSS variables).
  • Fixed: the product count is now resolved before the display limit is applied, so hidden or removed products no longer shrink the visible list.
  • Fixed: the empty-state message is no longer printed on product pages when a visitor has no history (shortcode behaviour unchanged).
  • Added: List layout option alongside Grid.
  • Added: support for multiple space-separated custom CSS classes.
  • Added: “Requires Plugins: woocommerce” header and WooCommerce version headers.
  • Improved: redesigned, accessible (WCAG) admin UI with single-page tabbed settings, toggle switches, help text, status sidebar, and a sticky save bar.
  • Improved: shortcode copy now uses the modern Clipboard API with a live shortcode preview.
  • Improved: front-end stylesheet is enqueued in the head for placed output to prevent a flash of unstyled content.
  • Improved: centralized default/settings handling to a single source of truth.
  • Fixed: removed UTF-8 byte order marks and normalized line endings in core files (a BOM before the opening PHP tag can cause “headers already sent” warnings on some servers).
  • Verified: passes the WordPress Plugin Check PHPCS rulesets (plugin-check and plugin-review) with zero errors.
  • Docs: added Privacy & Cookies and Frequently Asked Questions sections to the readme.

2.1.0

  • Added modern settings architecture and admin tabs.
  • Added shortcode generator UI.
  • Added secure settings save flow (capability + nonce + sanitization).
  • Improved tracking and rendering logic.
  • Added uninstall conditional cleanup.

2.0.0

  • Initial release.

Plugin Website
Visit website

Author
Mahesh Patel
Version:
2.3.0
Last Updated
June 26, 2026
Active Installs
1000
Requires
WordPress 6.0
Tested Up To
WordPress 7.0
Requires PHP
7.4

Share Post

Join our newsletter.

Get insights into what’s happening at ChangelogWP right in your inbox. We don’t believe in spam.