Linux 软件免费装
Banner图

Oli Abandoned Cart Recovery

开发者 bigrat95
更新时间 2026年10月13日 21:47
捐献地址: 去捐款
PHP版本: 7.4 及以上
WordPress版本: 7.1
版权: GPLv2 or later
版权网址: 版权信息

标签

woocommerce multilingual abandoned cart cart recovery pending orders

下载

1.1.1 1.1.2 1.1.3 1.1.4

详情介绍:

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 Multilingual Reminders Stop, unsubscribe and privacy Dashboard and reports Lightweight by design

安装:

  1. Upload the oli-abandoned-cart-recovery folder to /wp-content/plugins/, or install the zip from Plugins > Add New > Upload Plugin
  2. Activate the plugin through the Plugins menu in WordPress (WooCommerce must be active)
  3. Go to WooCommerce > Abandoned Carts > Settings and choose the abandonment delay
  4. Go to the Email templates tab, review the templates and activate the ones you want
  5. Click Send a test to check the email

屏幕截图:

  • Abandoned carts list with status filters (active, abandoned, reminded, recovered, unsubscribed, send failed), including the error of a failed send
  • Email template editor: language tabs, placeholders, unique coupon and "Send a test"
  • Settings: the "Require consent" switch turned off, with the Quebec Law 25 / GDPR warning (consent is on by default)
  • Cart reminder email received by the customer, with the cart items and the recovery button

升级注意事项:

1.1.4 https links in every reminder email (multilingual + WP-CLI/cron), product names in the reminder language, admin notice in the site language. 1.1.3 Adds Donate / support links (Plugins screen, plugin notice, WordPress.org Donate link). 1.1.2 Links in reminder emails now always keep https, also when reminders are sent by a server cron with a multilingual plugin. 1.1.1 WordPress.org review fixes: admin notices limited to the plugin's screens and dismissible, enqueued admin script, activation hardened on WordPress 6.4 and later. Translations now come from translate.wordpress.org. 1.1.0 Multilingual templates and consent text. Consent is now required for guests and logged-in customers (a store in "Always" mode switches to consent, with a notice); carts saved by 1.0.x are no longer reminded until the customer consents again. Failed reminders are retried. 1.0.1 New installs capture guests only with consent (Law 25). Several fixes: manual send, uninstall clean-up, reminder language, one-click unsubscribe. 1.0.0 Initial release.

常见问题:

Is it compatible with multilingual plugins?

Yes: TranslatePress, Polylang, WPML and Weglot are detected automatically (in that order of priority: WPML, Polylang, TranslatePress, Weglot, then WordPress itself). The language of the checkout page is saved with the cart, the reminder is sent in that language, and its links open the store in that language. Under Abandoned Carts > Email templates, each template has one tab per active language. Polylang needs Polylang for WooCommerce or a short snippet: see "Polylang: what do I need?" below.

Polylang: what do I need?

Free Polylang alone translates the pages, but WooCommerce does not recognize the translated cart and checkout pages: on those pages the capture script is not loaded and no cart is saved in the other languages. Install Polylang for WooCommerce, or link the translated pages to WooCommerce with this snippet (in a small plugin or your theme's functions.php): add_filter( 'woocommerce_get_checkout_page_id', function ( $id ) { return function_exists( 'pll_get_post' ) && pll_get_post( $id ) ? pll_get_post( $id ) : $id; } ); add_filter( 'woocommerce_get_cart_page_id', function ( $id ) { return function_exists( 'pll_get_post' ) && pll_get_post( $id ) ? pll_get_post( $id ) : $id; } ); Until one of them is in place, the plugin shows a dismissible notice on its own screens.

Which text is used for a language?

For each field, in this order: the text written in that language's tab; the WPML String Translation or Polylang string translation of the fallback language text; the default text translated in that language (if the fallback text is still the default one); then the fallback language text. The same order applies to the consent text.

What is the fallback language?

The language used when a cart's language is unknown or no longer active, and for texts missing in a language. By default it is the site's default language (or the multilingual plugin's default language); you can change it in Settings.

How do I add another multilingual plugin?

Extend the OLI_ACR_Lang_Adapter class (languages, current language, URL conversion, optional string translation) and add an instance with the oli_acr_lang_adapters filter.

Does it capture guests who never place an order?

Yes, once they consent. With the default settings, the email and the cart are saved only after the guest ticks the consent box on the checkout page; the email is then sent on blur or change, with the cart content. No account or order is needed. If you turn consent off (your responsibility), the email is saved as soon as it is typed.

Does it work with the block checkout?

Yes. The same script listens to the email field of the classic checkout and of the block checkout.

When is a cart considered abandoned?

When it has had no activity for the delay set in Settings (60 minutes by default). Each template is then sent after its own delay, counted from that moment.

What happens when the customer comes back?

The recovery link refills the cart, pre-fills the email, applies the coupon of the email (if any) and redirects to the checkout. As soon as the order is placed, the cart is marked Recovered and no other reminder is sent.

Is it compatible with HPOS?

Yes. Orders are only accessed through the WooCommerce CRUD API and compatibility is declared for custom order tables and the cart/checkout blocks.

Does it slow down my store?

No. The capture request only runs on the checkout page. Detection and sending run in the background with Action Scheduler, in batches, on indexed queries.

Are customers tracked without consent?

No, not by default. The Require consent switch is on by default and applies to guests and to logged-in customers: until the box is ticked, nothing is sent to the server or saved (no email, phone or cart), and no reminder is sent. A logged-in customer who ticked the box once is remembered (the box is shown ticked and can be unticked to withdraw consent). This follows Quebec's Law 25 and the GDPR, which require express consent before collecting personal information for marketing reminders. You can turn the switch off in Settings — guests and logged-in customers are then tracked without the box — but you become responsible for having another legal basis, and a warning stays in the admin. Carts saved while the switch is off are marked as captured without consent: if you turn the switch back on, they are not reminded (unless the customer ticks the box later). You can also choose to never track guests. Reminders for pending (unpaid) orders do not depend on this switch.

I upgraded from 1.0.x and my store was in "Always" mode. What changed?

Version 1.1.0 turns consent on for these stores (the switch is on) and shows a notice on the plugin's screens until you dismiss it. You can turn consent off again in Settings, under your own responsibility.

Are carts saved by 1.0.x still reminded after the update?

No. Version 1.0.x did not record whether a cart was saved with the consent box ticked or in "Always" mode (a store may also have switched modes before updating). To be safe, every cart saved by 1.0.x — guests and logged-in customers — is marked as captured without consent and is not reminded until the customer ticks the box again in 1.1.0. Pending order reminders are not affected.

What happens when an email cannot be sent?

The cart gets the Send failed status with the error message, a dismissible notice is shown on the plugin's screens and the error is logged in WooCommerce > Status > Logs (source oli-abandoned-cart-recovery), even without WP_DEBUG. The reminder is retried after 5 minutes, 30 minutes and 2 hours, then the cart stays Send failed; use Send next reminder now once your mail settings are fixed.

In which language are reminders sent?

In the language saved with the cart (site language, or WPML / Polylang language). Default templates and the default consent text are translated in that language as long as you did not edit them. An edited template is sent as written, in a single language.

How do I remove all data?

Deleting the plugin from the Plugins screen removes its tables (carts and email log), options, capability, scheduled actions with their Action Scheduler logs and group, WP-Cron events, the plugin's WooCommerce log files, order, user and coupon metadata (including the block checkout consent field), the plugin's keys in WooCommerce sessions, and generated coupons that were never used. Generated coupons that were used stay in WooCommerce, because they are linked to orders; only the plugin's marker is removed. To keep everything, tick Keep the data when the plugin is deleted in Settings (off by default).

Which languages are supported?

The plugin is written in English and fully translatable (text domain oli-abandoned-cart-recovery). Translations are managed on translate.wordpress.org and installed automatically by WordPress; French (Canada) and French (France) translations will be contributed there.

更新日志:

1.1.4 1.1.3 1.1.2 1.1.1 1.1.0 1.0.1 1.0.0