Every feature you need.
Nothing you don't.

Two independent systems for WooCommerce — Abandoned Cart Recovery and a complete Loyalty & Membership System — configured once and run on autopilot.

Feature 01

Abandoned Cart Recovery

Captures checkout emails in real time and runs a configurable automated reminder-email sequence to recover lost sales — entirely on autopilot via WP-Cron and WooCommerce hooks. Every setting below is a toggle or field in Settings → ACR.

Real-time email capture

Captures checkout emails as they are typed — guests on blur via AJAX, logged-in shoppers on add-to-cart — so a cart can be recovered even if checkout is never reached.

Multi-step reminder sequences

1–5 ordered reminder steps, each with its own delay (minutes / hours / days), subject, body and active flag. Space them however you like and toggle individual steps on or off.

Per-step coupons

Attach a single-use, email-restricted WooCommerce coupon to any step — percent or fixed, with its own expiry — to add urgency exactly where you want it.

One-click cart restore

Every reminder carries a signed, time-limited link that drops the shopper back into their exact cart, ready to check out. Restore-link validity is configurable.

Open & click tracking

An optional tracking pixel records opens, and the restore link records clicks — feeding open rate, click rate and recovery attribution.

One-click unsubscribe

Every email includes a signed one-click unsubscribe link and a List-Unsubscribe header. Opt-outs are permanent and instantly stop all future sends to that address.

GDPR / CASL consent

Guests are only captured with an explicit consent checkbox (classic and block checkout). The consent text and timestamp are stored for audit; pre-ticking is off by default.

Smart exclusions & rules

Skip carts below a minimum value, or carts containing specific products or categories. An abandon-timeout setting controls how long idle before a cart counts as abandoned.

Recovery analytics

Abandoned, sent, open/click rate, recovered, recovery rate, recovered revenue and unsubscribes — with an Abandoned-vs-Recovered trend chart and a recent-carts table.

Hands-off automation

Runs entirely on WP-Cron and WooCommerce hooks: schedules sequences, sends due reminders, retries failures with backoff, and cancels the sequence the moment a cart is recovered or the shopper unsubscribes.

Feature 02

Loyalty & Membership System

Points earning, membership tiers, two redemption modes, points expiry, manual / bulk adjustments and customer-facing displays — a complete loyalty program configured once in Settings → LMS and run automatically.

Three earning modes

Flat points per order, points per amount spent (per-currency rates), and price-tier brackets — all stackable and summed, calculated on the amount actually paid by default (after coupons and redeemed points).

Multipliers & double points

Per-product and per-category multipliers (or disable earning entirely), plus scheduled double-point events with a custom multiplier over a date window.

Membership tiers

Bronze, Silver, Gold and Platinum by default, ranked by lifetime points or current balance, with customer-facing colored badges. Fully editable tier list, thresholds and colors.

Mode A — milestone coupons

Hit a points target and a single-use reward coupon is generated, emailed and shown in the account. Configurable target, type, value, expiry and single-vs-multiple rules.

Mode B — points at checkout

A flexible checkout slider lets customers spend points directly for a discount, with a conversion rate, minimum redeem amount, and a max-discount cap as a % of the cart.

Points wallet & ledger

A single-source-of-truth wallet backed by a full earn / redeem / expire / manual ledger. Adjust a customer by hand with a mandatory note, or bulk-adjust from a CSV.

Points expiry & warnings

Expire points after inactivity (full or FIFO-partial), with an advance warning email sent a configurable number of days before — so customers come back to spend them.

Refund-aware

Points are only deducted on order completion (failed payments never consume them), and a configurable share of earned points is clawed back proportionally on partial refunds.

My Points account page

A “My Points” tab in WooCommerce My Account shows balance, lifetime points, tier badge, active reward coupons and paginated earning / redemption history.

Blocks & Elementor widgets

Place the points-balance panel, the Mode A coupon list and the Mode B redemption widget anywhere with native Gutenberg blocks or Elementor widgets — no-code stylable.

Feature 03

Built for developers too

Everything is prefixed, hookable and observable. Drive the plugin from your own code with internal action hooks, and read analytics or settings through a clean REST API.

Action hooks

  • eoc_lms_balance_updated — after any wallet change ($user_id, $balance)
  • eoc_lms_tier_changed — on tier promotion ($user_id, $new, $old)
  • eoc_lms_milestone_coupon_generated — Mode A coupon created
  • eoc_loaded — when the plugin boots

REST API (essential-opticart/v1)

  • GET/POST /settings/acr — read & save ACR settings
  • GET/POST /settings/lms — read & save LMS settings
  • GET /dashboard/carts — recovery stats & series
  • GET /dashboard/loyalty — loyalty stats & tiers
  • GET /dashboard/customer?id= — one customer's ledger
functions.php
// React to loyalty point changes
add_action(
  'eoc_lms_balance_updated',
  function ( $user_id, $balance ) {
    error_log( "User {$user_id}: {$balance} pts" );
  },
  10, 2
);
functions.php
// Reward a perk when a member is promoted
add_action(
  'eoc_lms_tier_changed',
  function ( $user_id, $new, $old ) {
    // e.g. grant free shipping for 'Gold'
  },
  10, 3
);

Ready to get started?

Free, automation-first cart recovery and loyalty for WooCommerce.

Get Started Free