Subscription Hooks
Action and filter hooks for customizing subscription lifecycles, automated renewals, and payment processing
Overview
WooNooW provides a comprehensive suite of WordPress action and filter hooks that allow developers to intercept, customize, and respond to subscription lifecycle events, automated billing crons, and payment processing.
Action Hooks
Lifecycle & Status Transitions
woonoow/subscription/created
Fires immediately after a new subscription record is provisioned from an initial order.
woonoow/subscription/status_changed
Fires when a subscription status is updated via SubscriptionManager::update_status().
woonoow/subscription/paused
Fires when an active subscription is paused by an admin or customer.
woonoow/subscription/resumed
Fires when a paused (on-hold) or pending-cancel subscription is manually resumed.
woonoow/subscription/auto_resumed
Fires when the daily pause scheduler (woonoow_check_pause_expirations) automatically resumes a subscription that exceeded the configured max_pause_duration_days.
woonoow/subscription/pending_cancel
Fires when a subscription is marked for cancellation at the end of the current paid period rather than immediately.
woonoow/subscription/cancelled
Fires when a subscription is permanently cancelled (either immediately or upon expiration of the pending-cancel window).
woonoow/subscription/expired
Fires when a subscription reaches its predetermined end_date or when maximum failed payment retries are exhausted.
woonoow/subscription/changed
Fires after an administrator modifies subscription properties via the admin REST API.
Renewal Processing & Billing Events
woonoow/subscription/renewal_processing
Fires inside the renewal cron loop immediately before attempting to renew a due subscription.
woonoow/subscription/renewal_completed
Fires inside the renewal cron loop only after a renewal payment has successfully completed (status: 'complete').
woonoow/subscription/renewal_error
Fires inside the renewal cron loop if an uncaught exception is thrown during renewal execution.
woonoow/subscription/renewal_payment_due
Fires when a renewal order requires manual customer payment (e.g. manual payment gateway, early renewal, or payment collection retry).
woonoow/subscription/renewal_reminder
Fires when the daily reminder cron identifies a subscription approaching its renewal date.
woonoow/subscription/renewed
Fires when renewal payment is confirmed and next payment dates have been updated.
woonoow/subscription/renewal_replayed
Fires when a renewal order is completed that was already marked with the renewal idempotency flag. Useful for downstream bridges that need to reconcile state after storage or network blips.
woonoow/subscription/renewal_failed
Fires when an auto-debit attempt fails and retry counters are incremented.
woonoow/subscription/renewal_catalog_missing
Fires when renewal order creation is aborted because the catalog product or variation was trashed or deleted.
woonoow/subscription/reactivation_invoice_created
Fires when an administrator grants a protected-price reactivation exception for a terminal subscription.
woonoow/subscription/product_deleted_alert
Fires when a WooCommerce product associated with an active subscription is deleted.
Filter Hooks
woonoow_pre_process_subscription_payment
Allows third-party code to intercept or completely short-circuit the default renewal payment processing.
Parameters:
$pre(null|bool|string): Returntrue(payment succeeded),false(payment failed), or'manual'(awaiting customer payment) to bypass core logic.$subscription(object): Subscription database record object (stdClass).$order(\WC_Order): The WooCommerce renewal order.
woonoow_process_subscription_payment
Allows custom payment gateway adapters (e.g., Stripe, PayPal) to execute tokenized auto-debit charges for renewal orders.
Parameters:
$result(null|bool): Returntrueif charge succeeded,falseif charge failed.$gateway(\WC_Payment_Gateway): Available WooCommerce payment gateway instance.$order(\WC_Order): The WooCommerce renewal order.$subscription(object): Subscription database record object (stdClass).
woonoow_gateway_subscription_capabilities
Filters the gateway capability map determining whether individual payment methods support tokenized recurring auto-debit.
Parameters:
$capabilities(array): Associative array mapping gateway IDs to capability booleans:
woonoow_license_webhook_settings
Filters the outbound license webhook configuration before queueing or delivering notifications.
Parameters:
$settings(array): Associative array containing:'url'(string): Target endpoint URL.'secret'(string): Shared secret string for HMAC-SHA256 calculation.
Last updated Sep 11, 2026