| 开发者 | davidrukahu |
|---|---|
| 更新时间 | 2026年5月18日 19:21 |
| PHP版本: | 7.4 及以上 |
| WordPress版本: | 6.9 |
| 版权: | GPLv2 or later |
| 版权网址: | 版权信息 |
No. The plugin never mutates your data without an explicit Fix click. Every change shows a preview first and lands in the Fix history with a Revert button. The scanner only detects; the merchant decides.
The revert confirm explicitly tells you: the re-scheduled payment has already charged the customer, reverting will undo the status change but will NOT refund. If a refund is needed, handle it in the related WooCommerce order.
Yes. The Manual-renewal drift rule looks for active subs whose _requires_manual_renewal flag is set despite a working Stripe customer/source meta on file. It clears the flag in both the orders table and postmeta (belt-and-braces against the HPOS sync gap), re-stamps next_payment if past-due, and schedules a fresh renewal so WCS bills automatically again.
No. Doctor Subs fixes structural issues (missing AS events, stuck-on-hold statuses, manual-renewal flag drift, line-item total drift). It does not handle card declines, SCA prompts, or retry strategy. For those, use your gateway's built-in dunning or a dedicated plugin.
v2.1: Stripe fully supported across all rules that need a gateway signal (stuck on-hold, manual-renewal drift). The remaining rules are gateway-agnostic. PayPal, Authorize.net, Square, and WooPayments variants land in a future release.
Yes. The scanner uses a shared pre-built index so every rule is O(1) per sub (no N+1 queries). The DR_SUBS_SCAN_BATCH_SIZE constant lets you tune the batch size in wp-config.php for very large stores.
Yes. Implement DR_Subs_Rule_Interface and register on the dr_subs_register_rules action. See the six built-in rules under includes/rules/ for examples.
Required. Doctor Subs declares High-Performance Order Storage compatibility and requires WooCommerce 9.0 or higher.
WooCommerce ships a Subscriptions Health Check tool that flags two conditions: subs on manual renewal that have a valid saved payment token, and subs with a missing or overdue next-payment date. It surfaces them as a list and points you at the relevant order so you can act manually. Doctor Subs overlaps on those two patterns (Manual-renewal drift, Ghost subscription) and adds four more the built-in tool doesn't cover: mass on-hold cascade after a product edit, stuck on-hold despite a captured Stripe renewal, repeated payment failures within 30 days, and total drift between the stored total and line items. It also wraps every detection in a preview-before-apply modal, one-click fixes, a per-entry revert journal, bulk-fix across N matches, state-guarded apply (aborts if the sub changed between detection and apply), and an optional email digest when something new breaks between scans. Short version: WC's tool is a flagger. Doctor Subs is a flagger plus a reversible repair surface. Running both is fine - they don't conflict.
dr_subs_status_transitions log written by an observer on every subscription status change. Fix reactivates each cascade member; bulk-fix recovers the whole cascade in one click.window.confirm(). When the journal entry's AS action has already executed, the modal escalates to a danger-styled button and the explicit "this will NOT refund" warning.DR_Subs_Rule_Catalog.key: value after-state dump.dr_subs_status_transitions table with sub_id, from_status, to_status, product_id, variation_id, transitioned_at. Pruned daily on a 30-day TTL.active, on-hold, and pending-cancel statuses (was active only). Mass-hold + Stuck-on-hold rules now reach their target subs..btn-danger token using the existing terracotta --broken for genuinely destructive actions.DR_Subs_Rule_Catalog central source-of-truth for per-rule label, summary, detect, fix, bucket, and journal_summary copy.dev/ directory with seed-test-data.php and wipe-test-data.php (excluded from the production zip via build script + CI workflow).