Requirements
| Requirement | Minimum | Tested up to |
|---|---|---|
| WordPress | 5.3 | 7.1 |
| WooCommerce | 7.0 | 11.0.1 |
| PHP | 7.2 | — |
| WooCommerce Subscriptions | Required — see below | — |
| WooCommerce Analytics | Enabled (included with WooCommerce) | — |
Without WooCommerce or WooCommerce Subscriptions the plugin does nothing and shows an admin notice until both are active.
Which subscriptions plugin is supported
Add-ons that extend WooCommerce Subscriptions rather than replace it — such as gifting, or all-products extensions — do not affect the dependency check. Their subscriptions are ordinary WooCommerce Subscriptions records and are reported like any other.
Order storage — HPOS and legacy
The plugin supports both High-Performance Order Storage (wc_orders) and legacy post-based order storage (wp_posts), and works whichever mode your store is running. Every query has a variant for each. Switching between them does not require a re-import, though running one afterwards is harmless.
Multi-currency stores
Caching and the storefront
The reports are admin-only and are fetched through the WordPress REST API, so page-caching plugins and CDNs do not cache them. Object caching does not affect them either — the figures come from the plugin’s own aggregation table.
The only thing this plugin adds to your storefront is the small first-touch attribution script described in Acquisition Sources, plus the optional cancellation-feedback prompt on the My Account page. Nothing else runs for your customers.
Known conflicts
| Plugin | Issue | Status |
|---|---|---|
| Sales Report By Country (zorem) | This plugin’s scripts and styles loaded on other analytics screens, affecting the filter dropdowns in the Sales by Country report. | Fixed in 1.1.5. Assets now load only on subscription analytics pages. Update both plugins if you see it. |
No other conflicts are currently known. If a report behaves oddly, a quick way to check is to deactivate other analytics-related plugins temporarily — anything that filters the WooCommerce Analytics screens is the most likely cause.
Developer filters
Data and behaviour
| Filter | What it controls | Default |
|---|---|---|
zorem_subs_report_order_statuses | Which subscription statuses the reports include. | wc-active, wc-on-hold, wc-pending, wc-pending-cancel |
zorem_subs_churn_signal_weights | The point weight of each churn-risk signal. Full key list on Churn Risk. | See Churn Risk |
zorem_subscription_daily_snapshot_window_days | How many recent days the nightly job recomputes. | 30 |
zorem_subscription_repair_window_days | How many days Repair Last 30 Days covers. Capped at 90. | 30 |
aws_report_order_statuses | Deprecated earlier name for zorem_subs_report_order_statuses, still applied first for backwards compatibility. | — |
zorem_subscription_recognition_paid_statuses filter — it does not exist, and code written against it will have no effect. There is also no filter for the forecast horizon or its 6-month lookback.AI prompts and payloads
| Filter | What it controls |
|---|---|
zorem_subs_ai_digest | The metrics payload sent for the Overview summary. |
zorem_subs_ai_system_prompt | The system prompt framing the Overview summary. |
zorem_subs_ai_forecast_digest | The payload sent for the forecast summary. |
zorem_subs_ai_forecast_system_prompt | The system prompt for the forecast summary. |
zorem_subs_ai_cancellation_digest | The answers payload sent for cancellation grouping. |
zorem_subs_ai_cancellation_system_prompt | The system prompt for cancellation grouping. |
Summary cards (JavaScript)
| Filter | Tab |
|---|---|
woocommerce_admin_subscription_overview_charts | Overview |
woocommerce_admin_upcoming_revenue_report_charts | Upcoming Revenue |
woocommerce_admin_customer_subscription_report_charts | Customers |
woocommerce_admin_coupons_report_charts | Over Time, Products and Variations |
woocommerce_admin_coupons_report_charts — a name carried over from the report this feature was originally built from. It is not related to coupons. If you already filter WooCommerce’s own coupons report by that name, your callback will also receive these subscription charts, so check the data you are given before modifying it.The plugin also honours the WooCommerce and WooCommerce Subscriptions filters wcs_reports_active_statuses, woocommerce_reports_paid_order_statuses and wcs_reports_customer_total_args, deliberately re-applying them so existing customizations carry through into these reports.
Frequently asked questions
Why do my reports show no data after activation?
Historical data needs to be imported once. Run the importer from WooCommerce → Settings → Subscription Analytics to backfill your existing subscriptions. New activity is tracked automatically after that.
Does the plugin slow my store down?
Reports read from a precomputed daily rollup table rather than querying orders live, which is why they stay fast on stores with large subscription histories. Nothing runs on the storefront except the small acquisition-attribution script and, if enabled, the cancellation prompt on My Account.
Does anything change for my customers?
Only if you enable cancellation feedback, which shows an optional question on the account page after a customer has cancelled. It is off by default and can never delay or block cancelling.
Is my data sent anywhere?
Not unless you enable AI Insights and supply your own API key, in which case aggregate totals go directly to the provider you chose. See AI Data and Privacy for the complete list.
What happens if I deactivate the plugin?
The reports and the scheduled jobs stop. Your subscriptions and orders are untouched — the plugin only ever reads them. Reactivating restores the reports from the aggregation table without a re-import.
Who can see the reports?
Anyone with the manage_woocommerce capability — normally Administrators and Shop managers. There is no separate read-only role, and the same capability governs the AI features, so anyone who can view the reports can also spend against your API key.