Title: Submex Subscription Billing for WooCommerce
Author: omexer
Published: <strong>October 17, 2026</strong>
Last modified: October 17, 2026

---

Search plugins

![](https://ps.w.org/submex/assets/banner-772x250.png?rev=3752225)

![](https://ps.w.org/submex/assets/icon-256x256.png?rev=3752225)

# Submex Subscription Billing for WooCommerce

 By [omexer](https://profiles.wordpress.org/omexer/)

[Download](https://downloads.wordpress.org/plugin/submex.1.0.0.zip)

 * [Details](https://wordpress.org/plugins/submex/#description)
 * [Reviews](https://wordpress.org/plugins/submex/#reviews)
 *  [Installation](https://wordpress.org/plugins/submex/#installation)
 * [Development](https://wordpress.org/plugins/submex/#developers)

 [Support](https://wordpress.org/support/plugin/submex/)

## Description

Submex turns WooCommerce products into subscriptions and runs the renewal billing
for you — scheduling each charge, taking it, retrying it and recording every attempt—
with a place in My Account where customers can see and cancel what they pay for.

#### Selling subscriptions

 * A **Subscription** product type in the Product data panel, billed every day, 
   week, month or year, or any multiple of them.
 * Free trials in days, weeks, months or years, and sign-up fees.
 * The price says how often it recurs wherever WooCommerce shows it, and the terms—
   the trial, the first payment, what follows, cancel anytime — are spelled out 
   on the product page, in the cart and at checkout.
 * Works with both the classic checkout and the block checkout.
 * A guest can buy a subscription and have an account made at checkout, or you can
   require a login first.
 * A checkout that costs nothing today — a free trial, or a coupon worth the whole
   first payment — still asks for a payment method whenever a later renewal will
   charge something, so the first renewal has a card to charge. Plans that renew
   for nothing are not asked.

#### Taking payment

 * **PayPal** runs the schedule itself, and Submex keeps in step through PayPal’s
   webhooks.
 * With no gateway at all, renewals become invoices the customer pays by hand.
 * Payments that are confirmed days later — Direct Debit and bank payments — wait
   as pending: the customer keeps access, the renewal order waits on hold so it 
   cannot be paid twice, and Submex never retries or re-charges it. The gateway 
   settles it once the money is confirmed or refused.
 * A failed or waiting renewal can be paid from its payment link. Paying it restarts
   the subscription exactly once, keeps the card it was paid with for later renewals,
   and is never charged again.
 * A safeguard in the database means a renewal can never be charged twice, even 
   when two processes try at the same moment.
 * A charge whose result never arrived is checked with the gateway, not simply tried
   again.
 * The next renewal is queued as soon as one is charged. Renewals missed while the
   site’s scheduler was not running are picked up by an hourly check, which by default
   charges once for the gap rather than once per missed period.
 * In stores that enter prices including tax, renewals charge exactly what the checkout
   charged. VAT-exempt customers stay exempt on every renewal.
 * A copy of the site on staging refuses to bill anyone.

#### For your customers

 * My Account lists their subscriptions, what they pay and when the next payment
   is.
 * They can cancel at the end of the period they paid for, or straight away. You
   cannot switch cancelling off. A subscription cancelled at the end of the period
   ends when that period runs out: access stops and nothing more is charged.
 * They can turn off automatic renewal and keep what they paid for until the period
   ends.
 * They can pay a renewal that failed, or one waiting on them, from its payment 
   link.
 * If you allow it, they can pay the next period early without moving their renewal
   date.

#### Running your store

 * **Home** walks you through setting up — connect a payment method, create a product,
   run a test renewal that charges nobody — then shows recurring revenue (net of
   tax), what needs your attention and your latest subscriptions.
 * **All subscriptions** lets you search, filter, sort and change subscriptions 
   in bulk, and open any one to see its history, charge it now or move its dates.
 * **Health** checks, under Settings: whether the renewal queue is running, charges
   whose outcome is still unknown, renewals waiting more than 10 days for their 
   payment provider to confirm them, whether the double-charge safeguard is in place,
   and subscriptions whose renewals add tax twice, listed with a Repair action so
   nothing is ever changed silently.
 * Ten emails for the moments that matter — seven to the customer (including a reminder
   before each renewal) and three to you — each with a preview under Email Notifications
   on WooCommerce 9.6 and later.
 * Customer roles and downloadable files that follow the subscription.
 * **FluentCRM:** choose tags and lists on each subscription product. The contact
   has them while the subscription is active or in a free trial and loses them when
   it stops, and only tags and lists Submex added are ever removed.
 * Integrations and Help screens, with a system report that never contains your 
   keys.
 * A REST API for subscriptions, open to logged-in store managers.

#### Submex Pro

A separate, optional plugin extends Submex with additional payment gateways, advanced
plans and pricing, customer retention tools, more integrations and reporting. Submex
itself is complete and fully functional on its own.

#### Source code

The JavaScript for Submex’s admin screens is bundled. Its unbundled source is in
the plugin’s `src/` directory, alongside the build configuration (`package.json`,`
webpack.config.js`, `tailwind.config.js`).

To rebuild it, run these commands in the plugin folder:

    ```
    npm install

    npm run build
    ```

The build uses @wordpress/scripts with Tailwind CSS and PostCSS, and needs Node.
js.

### External services

Submex talks to a payment provider only when you have switched that provider on 
and entered its credentials. Nothing is sent anywhere by default, and Submex sends
nothing to its own author or to any analytics service.

#### PayPal

Used to create and run the billing plan, when PayPal is enabled under **WooCommerce
Settings  Subscriptions  PayPal**.

Requests go to `https://api-m.paypal.com`, or to `https://api-m.sandbox.paypal.com`
when the environment is set to Sandbox. They are made when a subscription product
is bought, and whenever PayPal notifies the site of a payment so Submex can verify
that the notification is genuine. What is sent: the product name, the price, currency
and billing cycle of the plan including any free trial or sign-up fee, the order
number, the customer’s first name, last name and billing email, this site’s name
and the addresses PayPal returns the customer to, and — for verification — the notification
PayPal sent back together with the signature headers that came with it.

PayPal’s terms: https://www.paypal.com/legalhub/useragreement-full — PayPal’s privacy
statement: https://www.paypal.com/legalhub/privacy-full

#### WordPress.org plugin directory

Used only when an administrator clicks **Install** on the Integrations screen to
add the FluentCRM plugin (`fluent-crm`). Nothing is requested or installed automatically.

When the button is clicked, the site asks the WordPress.org plugin API (`https://
api.wordpress.org`) for that plugin’s details and download, exactly as **Plugins
Add New** does. The only data sent is the plugin slug, plus the WordPress version
and site address that WordPress includes with every plugin request.

WordPress.org privacy policy: https://wordpress.org/about/privacy/

## Installation

 1. Install and activate WooCommerce 8.0 or newer.
 2. Upload the `submex` folder to `/wp-content/plugins/`, or upload the ZIP from **
    Plugins  Add New  Upload Plugin**.
 3. Activate Submex.
 4. Open **Submex  Home** and follow the setup checklist: connect a payment method,
    create a subscription product, and run a test renewal.

To turn a product into a subscription yourself, edit it and choose **Subscription**
in the **Product data** dropdown.

## FAQ

### Which payment methods can renew automatically?

PayPal, included. Without a gateway, each renewal is an invoice the customer pays
by hand. A separate Pro plugin adds further gateways.

### What happens to a Direct Debit renewal while it clears?

The renewal is pending: the customer keeps access, the renewal order waits on hold,
and nothing is charged again or retried. When the payment provider confirms the 
payment the renewal is marked paid and the next one is scheduled; if the payment
fails, it follows the normal failed-payment path, once.

### Can a customer be charged twice for the same renewal?

No. Each billing period can hold exactly one charge, enforced by a unique index 
in the database, so a second attempt is refused before it reaches the payment gateway—
even if two processes try at the same moment.

### Can customers cancel on their own?

Yes, from My Account, and that cannot be turned off. A customer who cannot cancel
is a chargeback waiting to happen.

### Does it work with High-Performance Order Storage?

Yes. Subscriptions are a native WooCommerce order type, stored in the HPOS tables.

## Reviews

There are no reviews for this plugin.

## Contributors & Developers

“Submex Subscription Billing for WooCommerce” is open source software. The following
people have contributed to this plugin.

Contributors

 *   [ omexer ](https://profiles.wordpress.org/omexer/)
 *   [ Amir Hossain ](https://profiles.wordpress.org/amhossain/)

[Translate “Submex Subscription Billing for WooCommerce” into your language.](https://translate.wordpress.org/projects/wp-plugins/submex)

### Interested in development?

[Browse the code](https://plugins.trac.wordpress.org/browser/submex/), check out
the [SVN repository](https://plugins.svn.wordpress.org/submex/), or subscribe to
the [development log](https://plugins.trac.wordpress.org/log/submex/) by [RSS](https://plugins.trac.wordpress.org/log/submex/?limit=100&mode=stop_on_copy&format=rss).

## Changelog

#### 1.0.0

 * Initial release.

## Meta

 *  Version **1.0.0**
 *  Last updated **1 day ago**
 *  Active installations **Fewer than 10**
 *  WordPress version ** 6.5 or higher **
 *  Tested up to **7.1.3**
 *  PHP version ** 8.1 or higher **
 * Tags
 * [Billing](https://wordpress.org/plugins/tags/billing/)[memberships](https://wordpress.org/plugins/tags/memberships/)
   [Recurring payments](https://wordpress.org/plugins/tags/recurring-payments/)[subscriptions](https://wordpress.org/plugins/tags/subscriptions/)
   [woocommerce](https://wordpress.org/plugins/tags/woocommerce/)
 *  [Advanced View](https://wordpress.org/plugins/submex/advanced/)

## Ratings

No reviews have been submitted yet.

[Your review](https://wordpress.org/support/plugin/submex/reviews/#new-post)

[See all reviews](https://wordpress.org/support/plugin/submex/reviews/)

## Contributors

 *   [ omexer ](https://profiles.wordpress.org/omexer/)
 *   [ Amir Hossain ](https://profiles.wordpress.org/amhossain/)

## Support

Got something to say? Need help?

 [View support forum](https://wordpress.org/support/plugin/submex/)