HDWebmobile Simple Subscriptions
Sell recurring subscription products — renewal orders are generated on schedule, no card data ever stored.
Overview
HDWebmobile Simple Subscriptions lets a merchant mark any simple product as a recurring subscription (renews every N days, weeks, months, or years). When a customer’s order for that product is paid, a subscription record is created; from then on, a scheduled job automatically generates a new order at each renewal and emails the customer a link to pay it. Customers manage their own subscriptions (view status, cancel) from a new “Subscriptions” tab in My Account.
Why This Plugin Exists
A competing WooCommerce Subscriptions plugin had a PHP Object Injection vulnerability (CVE-2026-18391): with High-Performance Order Storage enabled, it called PHP’s unserialize() on data without validating it first, and an unauthenticated attacker could supply a crafted serialized payload that instantiated a gadget-chain object from a bundled dependency — remote code execution. This plugin closes that entire vulnerability class by construction, not by sanitizing the unserialize call more carefully:
- This plugin never calls PHP’s
serialize()orunserialize()anywhere in its code, on any data, under any circumstance. - Every piece of subscription state — the renewal interval, the next renewal date, the status — is stored as its own plain scalar database column, never as a serialized blob in a text field.
- Renewal orders are only ever created through WooCommerce’s own trusted
wc_create_order()/WC_OrderAPI, the same as a real checkout would. - This plugin never stores a customer’s payment card or token at all. Renewals generate a new order and email the customer a secure link to pay it via WooCommerce’s own checkout.
- A compare-and-swap update on the renewal date makes each billing cycle’s renewal idempotent — only one renewal order can ever be created for a given cycle, never a duplicate charge request.
Key Features
- Mark any simple product as a subscription with a configurable interval (every N days/weeks/months/years)
- Automatic subscription creation when a qualifying order is paid
- A daily scheduled job (via WooCommerce’s own Action Scheduler) creates renewal orders and emails customers a pay-now link
- “Subscriptions” tab in My Account: customers see status and next renewal date, and can cancel any time
- Admin subscriptions list under WooCommerce > HDWebmobile, with manual cancel/reactivate for customer service
How to Use
1. Mark a product as a subscription. Edit the product, go to the General tab, check “Subscription”, and set “Renews every” (e.g. 1 Month).
2. Customers subscribe automatically. As soon as a customer’s order containing that product reaches Processing or Completed, a subscription is created for their account.
3. Renewals happen on schedule. Each day, any subscription due for renewal gets a new order created automatically, and the customer receives an email with a link to pay it.
4. Customers manage their own subscriptions. “Subscriptions” appears in the My Account menu, showing status and next renewal date, with a Cancel button.
5. Customer service. Under WooCommerce > HDWebmobile > Subscriptions, an admin can view every subscription and manually cancel or reactivate one.
Limitations
Please read before installing:
- Renewals are not auto-charged — the customer receives an email with a link and pays each renewal order manually, since this plugin deliberately never stores payment card/token data
- Only logged-in customers can hold a subscription — guest checkouts don’t create one
- Simple products only in this version (no subscription variations)
Quick Setup
- Upload the plugin files to the /wp-content/plugins/hdwebmobile-simple-subscriptions directory, or install through the Plugins screen directly.
- Activate the plugin. WooCommerce must already be installed and active.
- Edit any simple product, check “Subscription” in the General tab, and set how often it renews.
Latest Version
Current stable version in readme: 1.0.0 (Initial release: subscription products with configurable renewal interval, automatic subscription creation on paid orders, scheduled renewal-order generation with idempotent compare-and-swap advancing, My Account subscriptions tab, admin subscriptions list with manual cancel/reactivate.)
See our other WordPress plugins for more WooCommerce and site-utility tools.
