
內容簡介
Oli Abandoned Cart Recovery 是一款專為 WooCommerce 設計的外掛,旨在減少購物車放棄率。它透過顧客同意收集電子郵件及購物車資訊,並在顧客放棄購物車後自動發送提醒郵件,幫助商家提升轉換率。
【主要功能】
• 收集顧客同意後自動保存電子郵件和購物車
• 支援經典及區塊結帳流程
• 自動發送購物車提醒郵件
外掛標籤
開發者團隊
原文外掛簡介
Oli Abandoned Cart Recovery asks for the customer’s consent on the checkout page and, once the consent box is ticked, saves the email and the cart — even for guests who never place an order — and sends a sequence of reminder emails when the cart is abandoned. Consent is on by default for guests and logged-in customers (Quebec Law 25, GDPR). Every email has a secure recovery link that refills the cart, pre-fills the email and sends the customer straight to checkout. Reminders stop automatically as soon as an order is placed.
It works with the classic checkout and the block checkout, is compatible with HPOS (High-Performance Order Storage), and does all the heavy work in the background with Action Scheduler (WP-Cron fallback). Nothing runs on the front end except one tiny script on the checkout page.
Capture
Email captured on the fly, with consent — once the consent box is ticked, the email is sent on blur/change with a debounce, a nonce and server-side is_email validation
Classic and block checkout — one delegated listener works with both, through the lightweight wc-ajax endpoint
Phone, first and last name captured with the email
Guests and registered customers — logged-in carts are updated every time the cart changes, once the customer has consented
Consent first (default) — with the Require consent switch on (default), nothing is saved for guests or logged-in customers (no email, phone or cart) until they tick the consent checkbox under the email field (classic and block checkout). A logged-in customer’s consent is remembered in their account and can be withdrawn by unticking the box. The switch can be turned off by the site owner, under their own responsibility: a permanent warning (Law 25, GDPR) is then shown in the admin
Consent text with links — edited per language with a small editor (links, bold, italic, saved with wp_kses), for example to link your privacy policy. Left empty, the default text is translated in each visitor’s language
Abuse protection — rate limits on the capture endpoint (per IP and per session, oli_acr_capture_rate_limits filter) and a honeypot field
Cache-proof — checkout pages send no-cache headers and DONOTCACHEPAGE; an expired nonce from a cached page is refreshed automatically
Tracked roles — all users or only the roles you choose
Cart snapshot — products, quantities, variations, total, currency and language, linked to the WooCommerce session and a secure token
Multilingual
Templates per language — each template has its own texts (name, subject, heading, content, button) for every active language, edited in language tabs; delay, coupon and status are shared
Consent text per language
Works with TranslatePress, Polylang (with Polylang for WooCommerce, or the short snippet in the FAQ), WPML and Weglot (and a single-language site); other plugins can be added with the oli_acr_lang_adapters filter
Sent in the cart’s language — the language of the checkout page is saved with the cart; recovery and unsubscribe links point to the URL of that language, and the recovery link opens the checkout page of that language
Adjustable fallback language for carts in an unknown or deactivated language
WPML String Translation and Polylang strings — texts of the fallback language are registered, so they can also be translated there
Reminders
Sent in the customer’s language — each reminder is sent in the language saved with the cart (switch_to_locale). Default templates stay translatable until you edit them
Several email templates, each with its own delay, subject, heading, reply-to address, content, recovery button label and active/inactive status
Sent in sequence — reminder #1, then #2, and so on, counted from the moment the cart was abandoned
Placeholders — {first_name}, {last_name}, {full_name}, {email}, {cart_items}, {cart_total}, {recovery_link}, {recovery_button}, {coupon}, {coupon_code}, {unsubscribe_link}, {site_name}, {site_url}, {order_number}, {order_date}
WooCommerce email look — messages are wrapped in the WooCommerce email template (colors, header, footer), with a plain-text part (multipart/alternative)
Retries after a failed send — a failed reminder gets the Send failed status and is retried after 5 minutes, 30 minutes and 2 hours (oli_acr_retry_delays filter); the cause is shown in the admin and logged in WooCommerce > Status > Logs, even without WP_DEBUG
Unique coupons — optional single-use coupon per reminder (prefix, percentage or fixed amount, validity), restricted to the customer’s email and applied automatically when the recovery link is clicked; created only when the email shows it ({coupon} or {coupon_code})
Coupon clean-up — used and expired generated coupons are moved to the trash daily
Pending orders — reminders for unpaid orders with their own delay and templates, with a secure “pay for order” link
Send a test — send any template to the address of your choice
Send now — send the next reminder of a cart or pending order manually
Admin notification — a WooCommerce email is sent to the admin when a cart or pending order is recovered
Stop, unsubscribe and privacy
Automatic stop — as soon as an order is placed with the same session or email, the cart is marked Recovered and linked to the order
Unsubscribe link in every email (with List-Unsubscribe and List-Unsubscribe-Post one-click headers, RFC 8058) and an exclusion list you can edit
No email ever sent to unsubscribed addresses
Personal data exporter and eraser for the WordPress privacy tools
Suggested privacy policy text
Automatic clean-up — old unrecovered carts are deleted, old reminded pending orders can be cancelled, and all data is kept only for the retention period you choose
Dashboard and reports
Abandoned carts list (WP_List_Table) with status filters, search, bulk delete and row actions
Pending orders, Recovered orders and Email log (sent, clicked, recovered, coupon)
Reports — abandoned carts, emails sent, clicks, recovered carts and pending orders, recovery rate and recovered revenue, by period (7, 30, 90 days, 12 months, all time), by day and by template
Shop manager access — optional, through the dedicated oli_acr_manage capability
Lightweight by design
Two custom tables with indexes, created with dbDelta and a schema version
One indexed UPDATE marks carts as abandoned; reminders are processed in batches (oli_acr_batch_size filter), under an atomic lock with a time budget so two runs never send the same reminder
No work on the front end besides the checkout script (about 3 KB, no jQuery); settings are autoloaded, so no extra query on other pages
Works with HPOS and with the legacy order storage
No external service, no tracking pixel
Privacy
The plugin stores, in the store’s own database: the email, phone, first and last name typed on the checkout page, the cart content, and the reminder email history. No data is sent to a third party. A suggested text is added to Settings > Privacy, and the data can be exported or erased with the WordPress privacy tools.
