WP Manifestindependent plugin directory
manifest / ecommerce / wcs-manual-renewal-fix

WCS Manual Renewal Fix

Diagnoses and fixes subscriptions silently broken by the WooCommerce Subscriptions requires_manual_renewal bug.

by pross · github.com/pross/wcs-manual-renewal-fix

★ 2stars
0forks

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.zip

Diagnoses 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.

Diagnostic dashboard showing affected subscriptions, missed revenue, and upcoming renewals at risk

Fix section with backup warning, confirmation checkboxes, dry run and apply buttons

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 = false on 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

  1. Download the plugin and upload it to wp-content/plugins/
  2. Activate it in Plugins
  3. 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