WCS Manual Renewal Fix
Diagnoses and fixes subscriptions silently broken by the WooCommerce Subscriptions requires_manual_renewal bug.
Install
No release zip yet. The repository archive installs, but the folder name will carry the branch suffix and updates will not flow:
wp plugin install https://github.com/pross/wcs-manual-renewal-fix/archive/refs/heads/main.zipDiagnoses and fixes a bug in WooCommerce Subscriptions where subscriptions are silently marked as requires_manual_renewal = true even when the customer has an automatic payment method set up. This causes renewal orders to go unpaid without any visible indication in the admin.
The bug was introduced in WCS 6.0 and fixed in 6.3.1. Stores that ran an affected version may still have corrupted subscription records even after upgrading.


What it does
- Shows how many subscriptions are affected and an estimate of missed revenue
- Breaks down affected subscriptions by gateway and status
- Lists upcoming renewals at risk (next 30 days)
- Exports a CSV of affected customers with failed renewal history
- Applies a targeted UPDATE to set
_requires_manual_renewal = falseon affected subscriptions only
Subscriptions where the customer manually opted out of automatic renewals (identified by order notes) are excluded from both the report and the fix.
Supports both HPOS and Classic (CPT) order storage.
Requirements
- WordPress 6.0+
- PHP 7.4+
- WooCommerce with Subscriptions
Installation
- Download the plugin and upload it to
wp-content/plugins/ - Activate it in Plugins
- Go to Tools → WCS Renewal Fix
Applying the fix
Review the diagnostic data, take a database backup, tick both confirmation boxes, then click Apply Fix. The fix is idempotent — running it twice is safe.
Tests
Requires a MySQL database called wcs_mrf_test (user: root, pass: root, host: 127.0.0.1). These can be overridden with environment variables — see phpunit.xml.
composer install
./vendor/bin/phpunit