AAdvanced Subscriptions
Funcionalidades Precio Docs Changelog Contacto — English
Iniciar sesión Comprar el plugin →
Referencia para desarrolladores · v2.0.0

Referencia de hooks.

Las 236 actions y filters definidos por Advanced Subscriptions for WooCommerce. Usa esta página para extender el plugin sin forkearlo.

236 hooks · 86 actions · 150 filters · 20 bridge-only · Última revisión 2026-05-27 · Plugin v2.0.0

Referencia y búsqueda de hooks

Esta página documenta todas las actions y filters definidos por el plugin. No incluye hooks de WordPress core o WooCommerce a los que el plugin solo se engancha.

Usa el buscador para filtrar por nombre de hook. Usa los chips de tipo para mostrar solo actions, solo filters, o solo los 20 hooks bridge-only. Haz clic en el nombre de cualquier hook para copiar un enlace directo.

La fuente de verdad vive en docs/hooks-reference.md en el repositorio del plugin. Esta página HTML se genera a partir de ese archivo y se mantiene sincronizada release a release. Las descripciones técnicas se conservan en inglés (igual que los nombres de hook y los snippets de código) por coherencia con la documentación del sector.

Subscription lifecycle

Subscription creation

aswc_pre_create_subscription

Action

Desde: 0.24.0 Archivo: public/class-aswc-public.php

Fires just before creating a new subscription from the checkout. Allows additional validations or data preparation.

ParámetroTipoDescripción
`$order`WC_OrderAssociated WooCommerce order
`$posted_data`arrayCheckout form data
`$aswc_recurring_data`arraySubscription recurring data
`$cart_item`arrayCart item that produced the subscription
PHP
add_action( 'aswc_pre_create_subscription', function( $order, $posted_data, $recurring_data, $cart_item ) {
    if ( empty( $posted_data['custom_subscription_field'] ) ) {
        throw new Exception( __( 'Custom field is required.', 'my-plugin' ) );
    }
    error_log( sprintf( 'Creating subscription for order #%d', $order->get_id() ) );
}, 10, 4 );

aswc_subscription_post_data

Filter

Desde: 0.24.0 Archivo: public/class-aswc-public.php

Filters the post data array passed to wp_insert_post() (or the equivalent HPOS write) when persisting a new subscription.

ParámetroTipoDescripción
`$aswc_subscription_data`arrayPost data to insert
`$order`WC_OrderParent order
`$aswc_args`arraySubscription args computed from the cart item

Devuelve: array — modified post data.

PHP
add_filter( 'aswc_subscription_post_data', function( $data, $order, $args ) {
    $data['post_title']  = 'MY-' . $data['post_title'];
    $data['post_author'] = $order->get_customer_id();
    return $data;
}, 10, 3 );

aswc_new_subscriptions_data

Filter

Desde: 0.24.0 Archivo: public/class-aswc-public.php

Filters the args array passed internally to the subscription creator. Differs from aswc_subscription_post_data in that it carries the higher-level cart-derived shape (interval, period, signup fee, trial, etc.) before that data is mapped to a post.

ParámetroTipoDescripción
`$aswc_args`arraySubscription args (interval, period, totals, signup fee, trial, etc.)

Devuelve: array.

aswc_recurring_data

Filter

Desde: 0.24.0 Archivo: public/class-aswc-public.php

Filters the recurring-data array built from a cart item before it is consumed by the subscription creator.

ParámetroTipoDescripción
`$aswc_recurring_data`arrayRecurring data (price, interval, expiry, signup fee, trial)
`$product_id`intProduct ID
`$cart_item`arrayCart item

Devuelve: array.

aswc_cart_data_for_subscription

Filter

Desde: 0.24.0 Archivo: public/class-aswc-public.php

Filters the same recurring-data array but at the moment it is read off the cart item during checkout processing (one step later than aswc_recurring_data).

ParámetroTipoDescripción
`$aswc_recurring_data`arrayRecurring data
`$cart_item`arrayCart item

Devuelve: array.

aswc_skip_creating_subscription

Filter

Desde: 0.24.0 Archivo: public/class-aswc-public.php

Allows a third party to short-circuit subscription creation for a particular cart item. Returning false skips that item; returning true keeps the default behaviour.

ParámetroTipoDescripción
`$create`boolDefault true
`$cart_item`arrayCart item evaluated

Devuelve: bool.

aswc_subscription_process_checkout

Action

Desde: 0.24.0 Archivo: public/class-aswc-public.php

Fires after a subscription has been created and persisted during checkout. Runs once per subscription created.

ParámetroTipoDescripción
`$order_id`intParent order ID
`$posted_data`arrayPosted checkout data (or recurring data, depending on call site)
`$subscription`intSubscription ID

aswc_subscription_process_checkout_payment_method

Action

Desde: 0.24.0 Archivo: public/class-aswc-public.php

Fires after the payment method has been bound to the new subscription during checkout. Use it to persist gateway-specific tokens or bridge bookkeeping.

ParámetroTipoDescripción
`$order_id`intParent order ID
`$posted_data`arrayPosted checkout data (or recurring data)

aswc_product_args_for_order

Filter

Desde: 0.24.0 Archivo: public/class-aswc-public.php

Filters the line-item args passed to WC_Order::add_product() when adding a subscription product to the order being created.

ParámetroTipoDescripción
`$aswc_pro_args`arrayArgs for add_product() (subtotal, total, qty, taxes…)

Devuelve: array.

aswc_product_args_for_renewal_order_propate_amount

Filter

Desde: 0.24.0 Archivo: public/class-aswc-public.php

Counterpart of the previous hook for the prorated path that runs when a plan switch creates a renewal order with a partial amount. (Note the typo propate — kept for backwards compatibility.)

ParámetroTipoDescripción
`$aswc_args`arrayArgs for add_product() after proration
`$cart_item`arrayCart item

Devuelve: array.

aswc_subscription_bundle_addition

Action

Desde: 0.24.0 Archivo: public/class-aswc-public.php

Fires after a Subscription Box (bundle) has been added to a newly-created subscription. Use it to mirror bundle composition into a third-party system.

ParámetroTipoDescripción
`$subscription_id`intSubscription ID
`$order_id`intParent order ID
`$_product`WC_ProductBundle product instance

aswc_subscription_subscription_box_addtion

Action

Desde: 0.24.0 Archivo: public/class-aswc-public.php

Fires when a Subscription Box add-on is registered on the subscription. (Note the typo addtion — kept for backwards compatibility.)

ParámetroTipoDescripción
`$subscription_id`intSubscription ID
`$order_id`intParent order ID
`$_product`WC_ProductBox product
`$cart_item`arrayCart item

aswc_subscription_order

Action

Desde: 0.24.0 Archivo: public/class-aswc-public.php

Fires once for every subscription order created during a multi-subscription checkout, after each subscription is linked to its parent order.

ParámetroTipoDescripción
`$new_order`WC_OrderOrder containing the subscription line item
`$order_id`intOrder ID

aswc_after_created_subscription

Action

Desde: 0.1.0 Archivo: public/class-aswc-public.php

Fires after successfully creating a subscription. The most common integration entry point.

ParámetroTipoDescripción
`$subscription_id`intCreated subscription ID
`$order_id`intParent order ID
PHP
add_action( 'aswc_after_created_subscription', function( $subscription_id, $order_id ) {
    wp_remote_post( 'https://api.example.com/subscriptions', array(
        'body' => array(
            'subscription_id' => $subscription_id,
            'order_id'        => $order_id,
            'created_at'      => current_time( 'mysql' ),
        ),
    ) );

    $subscription = aswc_get_subscription( $subscription_id );
    $subscription->update_meta_data( '_external_sync', 'pending' );
    $subscription->save();
}, 10, 2 );

aswc_created_subscription

Filter

Desde: 0.24.0 Archivo: public/class-aswc-public.php

Filters the value returned by the internal subscription-creation method. Useful when you need to substitute the returned ID with a different identifier (rare).

ParámetroTipoDescripción
`$subscription_id`intCreated subscription ID
`$order_id`intParent order ID

Devuelve: int.

Subscription activation

aswc_pre_activate_subscription

Action

Desde: 0.24.0 Archivo: public/class-aswc-public.php

Fires before a subscription is activated as a result of a parent-order status transition (e.g. processingcompleted).

ParámetroTipoDescripción
`$subscription_id`intSubscription ID
`$order_id`intOrder ID
`$old_status`stringPrevious order status
`$new_status`stringNew order status
PHP
add_action( 'aswc_pre_activate_subscription', function( $subscription_id, $order_id, $old_status, $new_status ) {
    $subscription = aswc_get_subscription( $subscription_id );
    $user_id      = $subscription->get_customer_id();
    $active_count = count( aswc_get_user_subscriptions( $user_id, 'active' ) );

    if ( $active_count >= 5 ) {
        error_log( sprintf( 'User %d reached active subscriptions limit', $user_id ) );
    }
}, 10, 4 );

aswc_subscription_activation_dates

Filter

Desde: 0.24.0 Archivo: public/class-aswc-public.php

Filters the dates calculated at activation time.

ParámetroTipoDescripción
`$dates`arrayKeys: next_payment, trial_end, expiry
`$subscription_id`intSubscription ID
`$current_time`intReference timestamp

Devuelve: array.

PHP
add_filter( 'aswc_subscription_activation_dates', function( $dates, $subscription_id, $current_time ) {
    $subscription = aswc_get_subscription( $subscription_id );
    $user_id      = $subscription->get_customer_id();

    if ( user_can( $user_id, 'vip_customer' ) ) {
        if ( $dates['trial_end'] > 0 ) {
            $dates['trial_end'] += 7 * DAY_IN_SECONDS;
        }
    }

    return $dates;
}, 10, 3 );

aswc_after_subscription_active

Action

Desde: 0.1.0 Archivo: public/class-aswc-public.php

Fires after a subscription has been successfully activated.

ParámetroTipoDescripción
`$status`stringNew status (typically active)
`$subscription_id`intSubscription ID
PHP
add_action( 'aswc_after_subscription_active', function( $status, $subscription_id ) {
    $subscription = aswc_get_subscription( $subscription_id );
    $user         = new WP_User( $subscription->get_customer_id() );
    $user->add_role( 'subscriber_premium' );
    do_action( 'send_welcome_subscription_email', $subscription_id );
}, 10, 2 );

aswc_subscription_active_renewal

Action

Desde: 0.24.0 Archivo: public/class-aswc-public.php

Fires when a subscription transitions to active as the result of a successful renewal payment (as opposed to first activation). Use it to differentiate first-payment vs. renewal-driven activations.

ParámetroTipoDescripción
`$subscription_id`intSubscription ID

aswc_order_status_changed

Action

Desde: 0.24.0 Archivo: public/class-aswc-public.php

Fires after the parent order's status change is reflected on a subscription record (the plugin's own bookkeeping bridge).

ParámetroTipoDescripción
`$order_id`intOrder ID
`$subscription_id`intSubscription ID

aswc_set_subscription_status

Filter

Archivo: public/class-aswc-public.php

Reserved hook name for filtering the status applied during activation. Currently disabled in source; kept here as a heads-up so integrators do not pick the same name for an unrelated purpose.

Status changes (compatibility bridge)

aswc_subscription_status_updated

Action Compat bridge (WCS)

Desde: 1.0.0 Archivo: includes/class-aswc-subscription-hooks-bridge.php

ParámetroTipoDescripción
`$subscription`objectSubscription object
`$new_status`stringNew status
`$old_status`stringPrevious status

aswc_subscription_status_scheduled_to_cancelled

Action Compat bridge (WCS)

Desde: 1.0.0 Archivo: includes/class-aswc-subscription-hooks-bridge.php

ParámetroTipoDescripción
`$subscription`objectSubscription

aswc_can_subscription_be_updated_to

Filter Compat bridge (WCS)

Desde: 1.0.0 Archivo: includes/class-aswc-subscription-hooks-bridge.php

ParámetroTipoDescripción
`$can_be_updated`boolWhether the transition is allowed
`$new_status`stringProposed new status
`$subscription`objectSubscription

Devuelve: bool.

aswc_can_subscription_be_updated_to_active

Filter Compat bridge (WCS)

Desde: 1.0.0 Archivo: includes/class-aswc-subscription-hooks-bridge.php

Specialised variant for transitions to active.

ParámetroTipoDescripción
`$can_be_updated`bool
`$subscription`object

Devuelve: bool.

aswc_can_subscription_be_updated_to_on-hold

Filter Compat bridge (WCS)

Desde: 1.0.0 Archivo: includes/class-aswc-subscription-hooks-bridge.php

Specialised variant for transitions to on-hold. Note the hyphen — kept identical to the WCS hook name for source-compatibility.

ParámetroTipoDescripción
`$can_be_updated`bool
`$subscription`object

Devuelve: bool.

aswc_can_subscription_be_updated_to_new-payment-method

Filter Compat bridge (WCS)

Desde: 1.0.0 Archivo: includes/class-aswc-subscription-hooks-bridge.php

Specialised variant gating the "change payment method" flow.

ParámetroTipoDescripción
`$can_be_updated`bool
`$subscription`object

Devuelve: bool.

aswc_subscriptions_registered_statuses

Filter Compat bridge (WCS)

Desde: 1.0.0 Archivo: includes/class-aswc-subscription-hooks-bridge.php

Filters the list of registered subscription statuses (post statuses) exposed by the plugin to add-ons.

ParámetroTipoDescripción
`$statuses`arrayRegistered statuses

Devuelve: array.

aswc_subscription_statuses

Filter Compat bridge (WCS)

Desde: 1.0.0 Archivo: includes/class-aswc-subscription-hooks-bridge.php

Filters the human-friendly statuses map (slug → label).

Devuelve: array.

aswc_checkout_create_subscription

Action Compat bridge (WCS)

Desde: 1.0.0 Archivo: includes/class-aswc-subscription-hooks-bridge.php

Bridge for wcs_checkout_create_subscription.

ParámetroTipoDescripción
`$subscription`objectSubscription
`$posted_data`arrayPosted data
`$order`WC_OrderParent order
`$recurring_cart`WC_CartRecurring cart

aswc_subscriptions_activated_for_order

Action Compat bridge (WCS)

Desde: 1.0.0 Archivo: includes/class-aswc-subscription-hooks-bridge.php

Bridge for subscriptions_activated_for_order. Fires once per parent order after every subscription it spawned is active.

ParámetroTipoDescripción
`$order_id`intParent order ID

aswc_subscriptions_thank_you_message

Filter Compat bridge (WCS)

Desde: 1.0.0 Archivo: includes/class-aswc-subscription-hooks-bridge.php

Filters the post-checkout thank-you message rendered for subscription orders.

ParámetroTipoDescripción
`$message`stringDefault message
`$order_id`intOrder ID

Devuelve: string.

aswc_recurring_cart_key

Filter Compat bridge (WCS)

Desde: 1.0.0 Archivo: includes/class-aswc-subscription-hooks-bridge.php

Filters the recurring-cart key used to group subscription items at checkout.

ParámetroTipoDescripción
`$cart_key`stringComputed key
`$cart_item`arrayCart item

Devuelve: string.

aswc_recurring_cart_next_payment_date

Filter Compat bridge (WCS)

Desde: 1.0.0 Archivo: includes/class-aswc-subscription-hooks-bridge.php

ParámetroTipoDescripción
`$date`stringComputed date
`$recurring_cart`objectRecurring cart
`$product`WC_ProductProduct

Devuelve: string.

aswc_recurring_cart_end_date

Filter Compat bridge (WCS)

Desde: 1.0.0 Archivo: includes/class-aswc-subscription-hooks-bridge.php

Same shape as aswc_recurring_cart_next_payment_date but for the cart's end date.

aswc_recurring_cart_trial_end_date

Filter Compat bridge (WCS)

Desde: 1.0.0 Archivo: includes/class-aswc-subscription-hooks-bridge.php

Same shape as aswc_recurring_cart_next_payment_date but for the cart's trial-end date.

aswc_subscription_cart_after_grouping

Action Compat bridge (WCS)

Desde: 1.0.0 Archivo: includes/class-aswc-subscription-hooks-bridge.php

Fires after the cart has been grouped into recurring carts at checkout.

aswc_subscription_date_to_display

Filter Compat bridge (WCS)

Desde: 1.0.0 Archivo: includes/class-aswc-subscription-hooks-bridge.php

Filters the formatted date displayed in admin / front-end views.

ParámetroTipoDescripción
`$date_to_display`stringFormatted date
`$date_type`stringDate type slug
`$subscription`objectSubscription

Devuelve: string.

aswc_view_subscription_actions

Filter Compat bridge (WCS)

Desde: 1.0.0 Archivo: includes/class-aswc-subscription-hooks-bridge.php

Filters the row actions exposed in My Account → Subscriptions.

ParámetroTipoDescripción
`$actions`arrayAvailable actions
`$subscription_id`intSubscription ID

Devuelve: array.

aswc_subscription_schedule_after_billing_schedule

Action Compat bridge (WCS)

Desde: 1.0.0 Archivo: includes/class-aswc-subscription-hooks-bridge.php

Fires in the admin subscription editor after the billing-schedule meta box has been rendered.

ParámetroTipoDescripción
`$subscription`objectSubscription

aswc_subscription_bulk_actions

Filter Compat bridge (WCS)

Desde: 1.0.0 Archivo: includes/class-aswc-subscription-hooks-bridge.php

Filters the bulk-actions menu of the admin subscriptions list.

ParámetroTipoDescripción
`$actions`arrayBulk actions

Devuelve: array.

Subscription cancellation

aswc_allow_customer_cancel_subscription

Filter

Desde: 0.24.0 Archivo: public/class-aswc-public.php

Allows controlling whether a customer can cancel a specific subscription.

ParámetroTipoDescripción
`$allow`boolDefault true
`$subscription_id`intSubscription ID
`$user_id`intUser ID requesting cancellation

Devuelve: bool.

PHP
add_filter( 'aswc_allow_customer_cancel_subscription', function( $allow, $subscription_id, $user_id ) {
    $subscription = aswc_get_subscription( $subscription_id );

    if ( $subscription->has_pending_payments() ) {
        return false;
    }

    $created = get_post_time( 'U', true, $subscription_id );
    if ( ( time() - $created ) < ( 30 * DAY_IN_SECONDS ) ) {
        return false;
    }

    return $allow;
}, 10, 3 );

aswc_pre_cancel_subscription

Action

Desde: 0.24.0 (extended in 2.0.0 with bridge call sites)

Type: Action Since: 0.24.0 (extended in 2.0.0 with bridge call sites) Files: - public/class-aswc-public.php — customer-driven cancellation - includes/payment-bridges/abstract-class-aswc-payment-bridge.php — bridge-driven cancellation after a full refund (since 2.0.0) - includes/payment-bridges/stripe/class-aswc-stripe-webhooks.php — Stripe webhook-driven cancellation - includes/payment-bridges/paypal-payments/class-aswc-paypal-payments-webhooks.php — PayPal Payments webhook-driven cancellation Fires just before processing a subscription cancellation. The hook is shared by: 1. Customer cancellation from My Account. 2. Bridge-driven cancellation when a full refund processed by a bridge is configured to cancel the subscription (see aswc_cancel_on_full_refund and aswc_bridge_cancel_subscription_on_full_refund). 3. Webhook-driven cancellation when Stripe/PayPal notifies the site that the upstream subscription has been cancelled. In bridge / webhook paths $user_id is the subscription's customer id and $status is the subscription status read from aswc_subscription_status meta immediately before cancellation.

ParámetroTipoDescripción
`$subscription_id`intSubscription ID
`$user_id`intUser who cancels (customer path) or subscription owner (bridge / webhook path)
`$status`stringCurrent subscription status
PHP
add_action( 'aswc_pre_cancel_subscription', function( $subscription_id, $user_id, $status ) {
    $subscription = aswc_get_subscription( $subscription_id );
    $reason       = isset( $_POST['cancel_reason'] ) ? sanitize_text_field( $_POST['cancel_reason'] ) : '';
    $subscription->update_meta_data( '_cancellation_reason', $reason );
    $subscription->save();

    $user = get_user_by( 'id', $user_id );
    wp_mail( $user->user_email, 'Sorry to see you go', 'Tell us why you cancelled.' );
}, 10, 3 );

aswc_subscription_pending_cancel

Action

Desde: 0.1.0 Archivo: public/class-aswc-public.php

Fires when a subscription enters pending-cancel status. The admin variant adds a third argument flagging that the cancellation came from the admin UI.

ParámetroTipoDescripción
`$subscription_id`intSubscription ID
`$user_id`intUser ID (admin path)
`$source`stringOptional, admin path: 'by_admin'

aswc_should_process_pending_cancellation

Filter

Desde: 0.24.0 Archivo: scheduler-api/lifecycle/class-aswc-pending-cancel-processor.php

Allows controlling whether the scheduler should finalise the cancellation of a subscription in pending-cancel.

ParámetroTipoDescripción
`$should_cancel`boolDefault true
`$subscription_id`intSubscription ID

Devuelve: bool.

PHP
add_filter( 'aswc_should_process_pending_cancellation', function( $should_cancel, $subscription_id ) {
    $subscription = aswc_get_subscription( $subscription_id );

    if ( $subscription->get_meta( '_renewal_requested' ) === 'yes' ) {
        $subscription->update_status( 'active' );
        return false;
    }

    return $should_cancel;
}, 10, 2 );

aswc_pre_final_cancellation

Action

Desde: 0.24.0 Archivo: scheduler-api/lifecycle/class-aswc-pending-cancel-processor.php

Fires just before the final cancellation step.

ParámetroTipoDescripción
`$subscription_id`intSubscription ID
`$subscription`ASWC_SubscriptionSubscription object
`$cancelled_by`stringOne of 'customer', 'admin', 'system'
PHP
add_action( 'aswc_pre_final_cancellation', function( $subscription_id, $subscription, $cancelled_by ) {
    $user = new WP_User( $subscription->get_customer_id() );
    $user->remove_role( 'premium_member' );
    do_action( 'deactivate_user_services', $user->ID, $subscription_id );
}, 10, 3 );

aswc_subscription_cancelled

Action

Desde: 0.1.0 Archivo: scheduler-api/lifecycle/class-aswc-pending-cancel-processor.php

Fires after a subscription has been completely cancelled.

ParámetroTipoDescripción
`$subscription_id`intCancelled subscription ID

Subscription expiration

aswc_pre_expire_subscription

Action

Desde: 0.24.0 Archivo: scheduler-api/lifecycle/class-aswc-scheduler-lifecycle-events.php

Fires just before a subscription expires.

ParámetroTipoDescripción
`$subscription_id`intSubscription ID
`$subscription`ASWC_SubscriptionSubscription
PHP
add_action( 'aswc_pre_expire_subscription', function( $subscription_id, $subscription ) {
    $coupon = new WC_Coupon();
    $coupon->set_code( 'RENEW-' . $subscription_id . '-' . wp_generate_password( 6, false ) );
    $coupon->set_discount_type( 'percent' );
    $coupon->set_amount( 25 );
    $coupon->set_usage_limit( 1 );
    $coupon->set_date_expires( strtotime( '+7 days' ) );
    $coupon->save();

    $user = get_user_by( 'id', $subscription->get_customer_id() );
    wp_mail( $user->user_email, 'Subscription about to expire', 'Use coupon ' . $coupon->get_code() . ' for 25% off' );
}, 10, 2 );

aswc_subscription_expired

Action

Desde: 0.24.0 Archivo: scheduler-api/lifecycle/class-aswc-scheduler-lifecycle-events.php

Fires after a subscription has expired.

ParámetroTipoDescripción
`$subscription_id`intSubscription ID
`$subscription`ASWC_SubscriptionSubscription

End of prepaid term

aswc_pre_end_of_prepaid_term

Action

Desde: 0.24.0 Archivo: scheduler-api/lifecycle/class-aswc-scheduler-lifecycle-events.php

ParámetroTipoDescripción
`$subscription_id`intSubscription ID
`$subscription`ASWC_SubscriptionSubscription

aswc_end_of_prepaid_term_completed

Action

Desde: 0.24.0 Archivo: scheduler-api/lifecycle/class-aswc-scheduler-lifecycle-events.php

ParámetroTipoDescripción
`$subscription_id`intSubscription ID

aswc_generated_manual_renewal_order

Action

Desde: 1.0.0 Archivo: scheduler-api/lifecycle/class-aswc-scheduler-lifecycle-events.php

Fires after the scheduler creates a renewal order for a subscription that requires manual payment, so the customer can pay it from My Account.

ParámetroTipoDescripción
`$renewal_order_id`intGenerated order ID
`$subscription_id`intSubscription ID

Trial period end

aswc_pre_trial_ended

Action

Desde: 0.24.0 Archivo: scheduler-api/lifecycle/class-aswc-scheduler-lifecycle-events.php

ParámetroTipoDescripción
`$subscription_id`intSubscription ID
PHP
add_action( 'aswc_pre_trial_ended', function( $subscription_id ) {
    $subscription      = aswc_get_subscription( $subscription_id );
    $user_id           = $subscription->get_customer_id();
    $has_payment_method = ! empty( wc_get_customer_saved_methods_list( $user_id ) );

    if ( ! $has_payment_method ) {
        $user = get_user_by( 'id', $user_id );
        wp_mail( $user->user_email, 'Trial ends today', 'Add a payment method to continue.' );
    }
}, 10, 1 );

aswc_subscription_trial_ended

Action

Desde: 0.1.0 Archivo: scheduler-api/lifecycle/class-aswc-scheduler-lifecycle-events.php

ParámetroTipoDescripción
`$subscription_id`intSubscription ID

Subscription object accessors

aswc_subscription_get_time

Filter

Desde: 1.0.0 Archivo: includes/class-aswc-subscription.php

Filters the timestamp returned by ASWC_Subscription::get_time() for non-standard date types (trial_end, end, next_payment and date_created are resolved without firing this hook).

ParámetroTipoDescripción
`$timestamp`intDefault timestamp (0)
`$date_type`stringRequested date type
`$subscription`ASWC_SubscriptionSubscription

Devuelve: int.

PHP
// Expose a custom "next_renewal_with_grace" date.
add_filter( 'aswc_subscription_get_time', function( $timestamp, $date_type, $subscription ) {
    if ( 'next_renewal_with_grace' !== $date_type ) {
        return $timestamp;
    }
    return (int) $subscription->get_time( 'next_payment' ) + 3 * DAY_IN_SECONDS;
}, 10, 3 );

aswc_subscription_is_manual

Filter

Desde: 1.0.0 Archivo: includes/class-aswc-subscription.php

Filters the boolean returned by ASWC_Subscription::is_manual(). Override only when you have an external reason to force a subscription onto manual renewal regardless of its stored payment type.

ParámetroTipoDescripción
`$is_manual`boolComputed default
`$subscription`ASWC_SubscriptionSubscription

Devuelve: bool.

aswc_subscription_payment_gateway_supports

Filter

Desde: 1.0.0 Archivo: includes/class-aswc-subscription.php

Filters whether the subscription's payment gateway supports a given feature (mirrors WC_Payment_Gateway::supports() for subscriptions).

ParámetroTipoDescripción
`$payment_gateway_supports`boolDefault support flag
`$payment_gateway_feature`stringFeature being tested
`$subscription`ASWC_SubscriptionSubscription

Devuelve: bool.

Payments and renewals

Payment processing

aswc_pre_process_renewal_payment

Action

Desde: 0.24.0 Archivo: scheduler-api/payments/class-aswc-scheduler-payments.php

Fires just before a renewal payment attempt.

ParámetroTipoDescripción
`$subscription`ASWC_SubscriptionSubscription
`$is_retry`boolTrue when it is a retry attempt
PHP
add_action( 'aswc_pre_process_renewal_payment', function( $subscription, $is_retry ) {
    $attempts = (int) $subscription->get_meta( '_payment_attempts', true );
    $subscription->update_meta_data( '_payment_attempts', $attempts + 1 );
    $subscription->save();

    if ( $is_retry ) {
        error_log( sprintf( 'Payment retry #%d for subscription %d', $attempts + 1, $subscription->get_id() ) );
    }
}, 10, 2 );

aswc_renewal_payment_processed

Action

Desde: 0.24.0 Archivo: scheduler-api/payments/class-aswc-scheduler-payments.php

Fires after a renewal payment attempt finishes (success or failure).

ParámetroTipoDescripción
`$subscription`ASWC_SubscriptionSubscription
`$renewal_order``WC_Order\null`
`$success`boolWhether payment was successful
PHP
add_action( 'aswc_renewal_payment_processed', function( $subscription, $renewal_order, $success ) {
    if ( $success && $renewal_order ) {
        $total_renewals = (int) $subscription->get_meta( '_total_renewals', true );
        $subscription->update_meta_data( '_total_renewals', $total_renewals + 1 );

        $ltv = (float) $subscription->get_meta( '_lifetime_value', true );
        $ltv += $renewal_order->get_total();
        $subscription->update_meta_data( '_lifetime_value', $ltv );
        $subscription->save();
    } else {
        $failed = (int) $subscription->get_meta( '_failed_payments', true );
        $subscription->update_meta_data( '_failed_payments', $failed + 1 );
        $subscription->save();
    }
}, 10, 3 );

aswc_subscription_renewal_payment_complete

Action

Desde: 1.0.0

Reserved hook name used by the discount renewal counter to record completed renewals. Custom code can subscribe to it; production-side it is fired by gateway integrations after a successful renewal payment is recorded against a subscription.

ParámetroTipoDescripción
`$subscription_id`intSubscription ID

Renewal orders

aswc_pre_create_renewal_order

Action

Desde: 0.24.0 Archivo: scheduler-api/payments/class-aswc-scheduler-payments.php

Fires before a renewal order is created.

ParámetroTipoDescripción
`$subscription`ASWC_SubscriptionSubscription
PHP
add_action( 'aswc_pre_create_renewal_order', function( $subscription ) {
    $pending_price = $subscription->get_meta( '_pending_price_change', true );
    if ( $pending_price ) {
        $subscription->update_meta_data( '_aswc_recurring_total', $pending_price );
        $subscription->delete_meta_data( '_pending_price_change' );
        $subscription->save();
    }
}, 10, 1 );

aswc_renewal_order_created

Action

Desde: 0.24.0 Archivo: scheduler-api/payments/class-aswc-scheduler-payments.php

Fires after a renewal order has been created.

ParámetroTipoDescripción
`$renewal_order`WC_OrderRenewal order
`$subscription`ASWC_SubscriptionSubscription

Payment retries

aswc_payment_retry_intervals

Filter

Desde: 0.24.0 Archivo: scheduler-api/payments/class-aswc-scheduler-payments.php

Filters the array of retry intervals (in seconds) consumed when scheduling failed-payment retries.

ParámetroTipoDescripción
`$intervals`int[]Default intervals

Devuelve: int[].

PHP
add_filter( 'aswc_payment_retry_intervals', function() {
    return array(
        1 * HOUR_IN_SECONDS,
        6 * HOUR_IN_SECONDS,
        1 * DAY_IN_SECONDS,
        3 * DAY_IN_SECONDS,
        7 * DAY_IN_SECONDS,
    );
} );

aswc_max_retry_attempts

Filter

Desde: 1.0.0 Archivo: scheduler-api/core/class-aswc-scheduler-core.php

Filters the maximum number of retry attempts permitted by the scheduler core.

ParámetroTipoDescripción
`$max_attempts`intConfigured value (defaults from settings)

Devuelve: int.

aswc_payment_retry_backoff_seconds

Filter

Desde: 1.0.0 Archivo: scheduler-api/core/class-aswc-scheduler-core.php

Filters the backoff (in seconds) between retry attempts when the scheduler core is the one driving the retry. Pairs with aswc_payment_retry_intervals for finer control.

ParámetroTipoDescripción
`$seconds`intDefault backoff

Devuelve: int.

aswc_pre_schedule_payment_retry

Action

Desde: 0.24.0 Archivo: scheduler-api/payments/class-aswc-scheduler-payments.php

Fires before scheduling a retry.

ParámetroTipoDescripción
`$subscription`ASWC_SubscriptionSubscription
`$attempt`intAttempt number (1-based)

aswc_payment_retry_scheduled

Action

Desde: 0.24.0 Archivo: scheduler-api/payments/class-aswc-scheduler-payments.php

Fires after a retry has been scheduled.

ParámetroTipoDescripción
`$subscription`ASWC_SubscriptionSubscription
`$attempt`intAttempt number
`$timestamp`intScheduled timestamp

aswc_scheduled_subscription_payment_retry

Action

Desde: 1.0.0 Archivo: scheduler-api/payments/class-aswc-scheduler-payment-retry-handler.php

Fires when the retry handler executes a scheduled retry. Hook into it to plug a custom dunning workflow that reacts as the retry runs (rather than when it is scheduled).

ParámetroTipoDescripción
`$subscription_id`intSubscription ID

Manual renewal

aswc_pre_extend_next_payment_date

Action

Desde: 0.24.0 Archivo: includes/aswc-manual-renewal-handler.php

Fires before extending the next-payment date in a manual renewal.

ParámetroTipoDescripción
`$subscription_id`intSubscription ID
`$order_id`intRenewal order ID
`$base_time`intBase timestamp used for the calculation

aswc_renewal_base_time

Filter

Desde: 0.24.0 Archivo: includes/aswc-manual-renewal-handler.php

Filters the base time used to calculate the new next-payment date.

ParámetroTipoDescripción
`$base_time`intBase timestamp
`$subscription_id`intSubscription ID
`$current_time`intCurrent timestamp

Devuelve: int.

PHP
add_filter( 'aswc_renewal_base_time', function( $base_time, $subscription_id, $current_time ) {
    $subscription = aswc_get_subscription( $subscription_id );
    $next_payment = $subscription->get_time( 'next_payment' );
    return $next_payment > $current_time ? $next_payment : $base_time;
}, 10, 3 );

aswc_next_payment_date_extended

Action

Desde: 0.24.0 Archivo: includes/aswc-manual-renewal-handler.php

Fires after the dates have been extended.

ParámetroTipoDescripción
`$subscription_id`intSubscription ID
`$next_payment`intNew next-payment timestamp
`$expiry_date`intNew expiry timestamp

Discounts

Renewal discounts

aswc_pre_apply_renewal_discount

Action

Desde: 0.24.0 Archivo: includes/discounts/class-aswc-discounts.php

Fires before applying a renewal discount.

ParámetroTipoDescripción
`$subscription_id`intSubscription ID
`$total`floatTotal before discount
`$renewal_count`intNumber of completed renewals

aswc_discount_rules

Filter

Desde: 0.24.0 Archivo: includes/discounts/class-aswc-discounts.php

Filters the discount rules array prior to evaluation.

ParámetroTipoDescripción
`$rules`arrayDiscount rules
`$subscription_id`intSubscription ID

Devuelve: array.

aswc_calculated_renewal_discount

Filter

Desde: 0.24.0 Archivo: includes/discounts/class-aswc-discounts.php

Filters the calculated discount before it is applied.

ParámetroTipoDescripción
`$discount`floatCalculated discount
`$subscription_id`intSubscription ID
`$renewal_count`intRenewal number
`$total`floatOriginal total

Devuelve: float.

PHP
add_filter( 'aswc_calculated_renewal_discount', function( $discount, $subscription_id, $renewal_count, $total ) {
    $max = $total * 0.5; // never exceed 50%.
    return min( $discount, $max );
}, 10, 4 );

aswc_renewal_discount_applied

Action

Desde: 0.24.0 Archivo: includes/discounts/class-aswc-discounts.php

Fires after a discount has been applied.

ParámetroTipoDescripción
`$subscription_id`intSubscription ID
`$discount`floatApplied discount
`$new_total`floatNew total
`$renewal_count`intRenewal number

aswc_renewal_order_line_item_total

Filter

Desde: 1.0.0 Archivo: scheduler-api/lifecycle/aswc-lifecycle-functions.php

Filters the line-item total of a renewal order per item during renewal-order creation. The Discounts module (includes/discounts/class-aswc-discounts.php) attaches to it to apply tier-based discounts to each line; third parties can use it for fine-grained adjustments. If the filter returns a value different from the original line total, the plugin proportionally adjusts the line's taxes and stores _aswc_original_total / _aswc_discount_applied meta on the order item.

ParámetroTipoDescripción
`$line_total`floatOriginal line item total
`$subscription_id`intSubscription ID
`$product_id`intProduct ID
`$order_item`WC_Order_ItemOrder item being adjusted

Devuelve: float.

PHP
add_filter( 'aswc_renewal_order_line_item_total', function( $line_total, $subscription_id, $product_id, $order_item ) {
    // Knock 10% off the line item for VIP customers.
    $subscription = aswc_get_subscription( $subscription_id );
    if ( user_can( $subscription->get_customer_id(), 'vip_customer' ) ) {
        return round( $line_total * 0.9, 2 );
    }
    return $line_total;
}, 10, 4 );

aswc_renewal_order_total

Filter

Desde: 1.0.0 Archivo: scheduler-api/lifecycle/aswc-lifecycle-functions.php

Filters the order-level total of a renewal order, after individual line-item discounts have already been applied. If the filter returns a value lower than the recalculated total, the plugin adds a negative fee line ("Renewal Discount") to keep the order math consistent.

ParámetroTipoDescripción
`$total`floatRecalculated order total
`$subscription_id`intSubscription ID

Devuelve: float.

Renewal counter

aswc_discount_renewal_count_incremented

Action

Desde: 1.0.0 Archivo: includes/discounts/class-aswc-discount-renewal-counter.php

Fires after the per-subscription renewal counter is incremented (the counter the discount engine uses to find the right tier).

ParámetroTipoDescripción
`$subscription_id`intSubscription ID
`$new_count`intUpdated count
`$old_count`intPrevious count

aswc_discount_renewal_count_reset

Action

Desde: 1.0.0 Archivo: includes/discounts/class-aswc-discount-renewal-counter.php

Fires after the renewal counter is reset (e.g. when the customer downgrades and the tier ladder must restart).

ParámetroTipoDescripción
`$subscription_id`intSubscription ID
`$old_count`intPrevious count

Role-based discount add-on

aswc_discount_role_priority

Filter

Desde: 1.0.0 Archivo: includes/discounts/addons/class-aswc-discount-role-pricing.php

Filters the resolution priority between user roles when several roles map to a discount tier (the highest-priority role wins).

ParámetroTipoDescripción
`$priority`intDefault priority
`$role`stringRole slug

Devuelve: int.

Refunds

aswc_cancel_subscription_on_full_refund

Filter

Desde: 2.0.0 (default semantics rewritten in 2.0.0) Archivo: scheduler-api/lifecycle/class-aswc-refund-handler.php

Gates whether the legacy refund handler cancels the linked subscription(s). Default value depends on the order type: - Parent (first-payment) order: defaults to true. - Renewal order: defaults to true only when the option aswc_cancel_on_full_refund is 'yes', false otherwise.

ParámetroTipoDescripción
`$enabled`boolWhether to cancel
`$order_id`intRefunded order ID
`$refund_id`intRefund ID

Devuelve: bool.

aswc_should_cancel_subscription_on_refund

Filter

Desde: 1.0.0 Archivo: scheduler-api/lifecycle/class-aswc-refund-handler.php

Per-subscription gate inside the legacy handler. Runs after aswc_cancel_subscription_on_full_refund has authorised the cancellation, once per subscription linked to the refunded order.

ParámetroTipoDescripción
`$should_cancel`boolDefault true
`$subscription_id`intSubscription
`$order_id`intOrder
`$refund_id`intRefund

Devuelve: bool.

aswc_send_cancellation_email_on_refund

Filter

Desde: 1.0.0 Archivo: scheduler-api/lifecycle/class-aswc-refund-handler.php

Toggles the cancellation email sent after a refund-driven cancellation.

ParámetroTipoDescripción
`$send_email`boolDefault true
`$subscription_id`intSubscription

Devuelve: bool.

aswc_subscription_cancelled_on_refund

Action

Desde: 1.0.0 Archivo: scheduler-api/lifecycle/class-aswc-refund-handler.php

Fires after a subscription has been cancelled by the legacy refund handler.

ParámetroTipoDescripción
`$subscription_id`intSubscription
`$order_id`intOrder
`$refund_id`intRefund

aswc_max_payment_amount

Filter

Desde: 2.0.0 Archivo: includes/aswc-common-functions.php

Filters the maximum allowed payment amount for a renewal charge. The plugin refuses to charge any renewal whose amount exceeds this value, returning a validation error rather than calling the gateway. Default: 999999. Use this filter to lower the ceiling (paranoid setups) or raise it (high-ticket B2B).

ParámetroTipoDescripción
`$max_amount``int\float`

Devuelve: int|float.

PHP
add_filter( 'aswc_max_payment_amount', function() {
    // Cap renewals at €10,000 - alert if higher.
    return 10000;
} );

aswc_max_subscription_price

Filter

Desde: 2.0.0 Archivo: includes/loader/admin/class-aswc-loaderadmin.php

Filters the maximum allowed subscription price when the admin updates a subscription from the edit screen via AJAX. Acts as a sanity guard against accidental typing errors (e.g., 100000 instead of 100). Default: 999999.

ParámetroTipoDescripción
`$max_price``int\float`

Devuelve: int|float.

Payment bridges

Bridge loader

aswc_enable_stripe_bridge

Filter

Desde: 2.0.0 Archivo: includes/payment-bridges/class-aswc-payment-bridges-loader.php

Force-enable or force-disable the Stripe bridge.

ParámetroTipoDescripción
`$enable`boolDetection result
`$detection`arrayactive, version, meets_min_version

Devuelve: bool.

aswc_enable_paypal_payments_bridge

Filter

Desde: 2.0.0 Archivo: includes/payment-bridges/class-aswc-payment-bridges-loader.php

Same semantics as aswc_enable_stripe_bridge for PayPal Payments (gateway id ppcp-gateway).

Devuelve: bool.

aswc_enable_woopayments_bridge

Filter

Desde: 2.0.0 Archivo: includes/payment-bridges/class-aswc-payment-bridges-loader.php

Same semantics as aswc_enable_stripe_bridge for WooPayments (gateway id woocommerce_payments).

Devuelve: bool.

aswc_gateway_supports_subscriptions

Filter

Desde: 2.0.0 Archivo: public/class-aswc-public.php

Lets bridges (and third parties) advertise that a gateway supports subscriptions when its supports array does not natively include subscriptions.

ParámetroTipoDescripción
`$supports`boolDefault support
`$gateway`WC_Payment_GatewayGateway under evaluation
`$cart`WC_CartCurrent cart

Devuelve: bool.

Renewal charge

aswc_stripe_bridge_renewal_intent_args

Filter

Desde: 2.0.0 Archivo: includes/payment-bridges/stripe/class-aswc-stripe-bridge.php

Filters the args passed to WC_Stripe_API::request() when creating the off-session PaymentIntent for a renewal.

ParámetroTipoDescripción
`$params`arrayPaymentIntent args
`$subscription`ASWC_SubscriptionSubscription
`$renewal_order`WC_OrderRenewal order

Devuelve: array.

PHP
add_filter( 'aswc_stripe_bridge_renewal_intent_args', function( $params, $subscription, $renewal_order ) {
    $params['metadata']['subscription_id'] = $subscription->get_id();
    $params['metadata']['renewal_order']   = $renewal_order->get_id();
    return $params;
}, 10, 3 );

aswc_paypal_payments_bridge_renewal_args

Filter

Desde: 2.0.0 Archivo: includes/payment-bridges/paypal-payments/class-aswc-paypal-payments-bridge.php

Filters the Orders v2 create-order args passed to PayPal Payments' OrderEndpoint::create() for an off-session renewal.

ParámetroTipoDescripción
`$create_args`arrayOrders v2 payload
`$subscription`ASWC_SubscriptionSubscription
`$renewal_order`WC_OrderRenewal order

Devuelve: array.

Renewal outcome

aswc_subscription_payment_failed

Action

Desde: 2.0.0 Archivo: includes/payment-bridges/abstract-class-aswc-payment-bridge.php

Fires after any bridge-driven renewal payment is marked as failed.

ParámetroTipoDescripción
`$subscription`ASWC_SubscriptionSubscription
`$renewal_order`WC_OrderRenewal order marked failed
`$error_code`stringBridge-normalized error code
`$error_message`stringHuman-readable error
PHP
add_action( 'aswc_subscription_payment_failed', function( $subscription, $renewal_order, $error_code, $error_message ) {
    if ( 'authentication_required' === $error_code ) {
        my_dunning_send_sca_recovery( $subscription->get_id() );
    }
}, 10, 4 );

Payment method lifecycle

aswc_subscription_payment_method_invalid

Action

Desde: 2.0.0 Archivo: includes/payment-bridges/abstract-class-aswc-payment-bridge.php

Fires when a payment method tied to a subscription becomes unusable.

ParámetroTipoDescripción
`$subscription`ASWC_SubscriptionSubscription
`$reason`stringagreement_cancelled, detached, token_deleted, …

aswc_payment_method_changed

Action

Desde: 2.0.0 Archivo: public/class-aswc-public.php

Fires after the customer changes the payment method on a subscription via the aswc-add-payment-method flow.

ParámetroTipoDescripción
`$subscription`ASWC_SubscriptionSubscription
`$new_payment_method`stringGateway id (e.g. stripe, ppcp-gateway)
`$payment_method_title`stringDisplay title

Bridge-driven refunds

aswc_bridge_cancel_subscription_on_full_refund

Filter

Desde: 2.0.0 Archivo: includes/payment-bridges/abstract-class-aswc-payment-bridge.php

Bridge-context counterpart of aswc_cancel_subscription_on_full_refund. Fires only from the bridge-driven refund helper called by ASWC_Stripe_Webhooks and ASWC_PayPal_Payments_Webhooks.

ParámetroTipoDescripción
`$should_cancel`boolDefault driven by option aswc_cancel_on_full_refund
`$subscription`ASWC_SubscriptionSubscription
`$renewal_order`WC_OrderRefunded renewal
`$bridge_id`stringstripe, paypal-payments

Devuelve: bool.

PHP
add_filter( 'aswc_bridge_cancel_subscription_on_full_refund', function( $should_cancel, $subscription, $renewal_order, $bridge_id ) {
    if ( 'stripe' !== $bridge_id ) {
        return $should_cancel;
    }
    $next_payment_ts = (int) aswc_get_meta_data( $subscription->get_id(), 'aswc_next_payment_date_timestamp', true );
    if ( $next_payment_ts > time() ) {
        return false; // there is still prepaid term remaining.
    }
    return $should_cancel;
}, 10, 4 );

aswc_woopayments_bridge_before_renewal_charge

Action

Desde: 2.0.0 Archivo: includes/payment-bridges/woopayments/class-aswc-woopayments-bridge.php

Fires immediately before the WooPayments bridge charges an off-session renewal. Receives the Payment_Information value object that will be sent to WC_Payment_Gateway_WCPay::process_payment_for_order(). Use this hook to log, mutate (rarely), or veto the charge.

ParámetroTipoDescripción
`$payment_information`WCPay\Payment_InformationValue object describing the upcoming charge.
`$subscription`objectSubscription owning the saved payment token.
`$renewal_order`WC_OrderRenewal order being charged.
PHP
add_action( 'aswc_woopayments_bridge_before_renewal_charge', function( $payment_info, $subscription, $renewal_order ) {
    error_log( sprintf(
        'WooPayments renewal about to charge order #%d for subscription #%d',
        $renewal_order->get_id(),
        $subscription->get_id()
    ) );
}, 10, 3 );

Subscription products

Product type and accessors

aswc_check_subscription_product_type

Filter

Desde: 1.0.0 Archivo: includes/aswc-common-functions.php

Filters the boolean returned by the helper that decides whether a given product is a subscription. Override only when you need to recognise a product type the plugin does not know about as a subscription.

ParámetroTipoDescripción
`$is_subscription`boolDefault value
`$product``WC_Product\int`

Devuelve: bool.

aswc_subscription_product_type

Filter

Desde: 1.0.0 Archivo: includes/loader/common/class-aswc-loadercommon.php

Filters the product-type slug used by the plugin's loader when classifying a product. Used by Pro builds to register additional product types.

ParámetroTipoDescripción
`$type`stringDefault type
`$product`WC_ProductProduct

Devuelve: string.

Period and interval taxonomy

aswc_subscription_intervals

Filter

Desde: 1.0.0 Archivo: includes/aswc-common-functions.php

Filters the array of interval values that the product editor offers. Override to expose extra intervals to merchants.

Devuelve: array<string,int>.

aswc_subscription_expiry_intervals

Filter

Desde: 1.0.0 Archivo: includes/aswc-common-functions.php

Same shape as aswc_subscription_intervals but for the expiry selector.

Devuelve: array.

aswc_display_time_interval

Filter

Desde: 1.0.0 Archivo: includes/aswc-common-functions.php

Filters the human-friendly label for an interval (singular/plural, translated).

ParámetroTipoDescripción
`$label`stringComputed label
`$interval`stringInterval slug
`$number`intNumber of intervals

Devuelve: string.

aswc_subscription_period_interval_strings

Filter

Desde: 1.0.0 Archivo: scheduler-api/core/aswc-core-functions.php

Filters the indexed list of interval strings used by the scheduler core when persisting or rendering a subscription's interval.

Devuelve: array.

aswc_subscription_available_time_periods

Filter

Desde: 1.0.0 Archivo: scheduler-api/core/aswc-core-functions.php

Filters the available time periods (day / week / month / year) used by the scheduler core.

Devuelve: array.

aswc_subscriptions_product_length

Filter

Desde: 2.0.0 Archivo: includes/aswc-subscription-product-functions.php

Filters the computed length (in billing intervals) of a subscription product. The length is derived from the product's expiry settings (aswc_subscription_expiry_number and _interval) combined with the billing cadence. A length of 0 means "no expiry".

ParámetroTipoDescripción
`$length`intComputed length in billing intervals. 0 = no expiry.
`$product`mixedProduct object or ID.

Devuelve: int — possibly modified length.

PHP
add_filter( 'aswc_subscriptions_product_length', function( $length, $product ) {
    // Cap every subscription length at 24 periods regardless of product config.
    return min( $length, 24 );
}, 10, 2 );

aswc_subscriptions_product_period

Filter

Desde: 2.0.0 Archivo: includes/aswc-subscription-product-functions.php

Filters the billing period of a subscription product. The period is one of 'day', 'week', 'month', 'year', or '' if the product has no subscription configuration.

ParámetroTipoDescripción
`$period`stringOne of 'day', 'week', 'month', 'year', ''.
`$product`mixedProduct object or ID.

Devuelve: string — modified period.

PHP
add_filter( 'aswc_subscriptions_product_period', function( $period, $product ) {
    // Force annual billing for products tagged 'enterprise'.
    $obj = is_numeric( $product ) ? wc_get_product( $product ) : $product;
    if ( $obj && has_term( 'enterprise', 'product_tag', $obj->get_id() ) ) {
        return 'year';
    }
    return $period;
}, 10, 2 );

aswc_subscriptions_product_period_interval

Filter

Desde: 2.0.0 Archivo: includes/aswc-subscription-product-functions.php

Filters the billing interval multiplier of a subscription product. The interval is a positive integer ≥ 1 that combines with the period (e.g., interval 3 + period month = "every 3 months"). Defaults to 1 if no configuration is present.

ParámetroTipoDescripción
`$interval`intBilling interval, ≥ 1.
`$product`mixedProduct object or ID.

Devuelve: int — modified interval.

PHP
add_filter( 'aswc_subscriptions_product_period_interval', function( $interval, $product ) {
    // Force monthly even if the product was saved as bi-monthly.
    return 1;
}, 10, 2 );

aswc_subscriptions_product_price

Filter

Desde: 2.0.0 Archivo: includes/aswc-subscription-product-functions.php

Filters the recurring price of a subscription product. The value comes from $product->get_price() and can be overridden, e.g., for currency-specific pricing, tiered pricing by user role, or dynamic discounts.

ParámetroTipoDescripción
`$price``string\float`
`$product`mixedProduct object or ID.

Devuelve: string|float — modified price.

PHP
add_filter( 'aswc_subscriptions_product_price', function( $price, $product ) {
    // 20% discount for wholesale users.
    if ( current_user_can( 'wholesale_customer' ) ) {
        return (float) $price * 0.80;
    }
    return $price;
}, 10, 2 );

aswc_subscriptions_product_sale_price

Filter

Desde: 2.0.0 Archivo: includes/aswc-subscription-product-functions.php

Filters the sale price of a subscription product. The value comes from $product->get_sale_price( $context ).

ParámetroTipoDescripción
`$sale_price``string\float`
`$product`mixedProduct object or ID.

Devuelve: string|float — modified sale price.

PHP
add_filter( 'aswc_subscriptions_product_sale_price', function( $sale, $product ) {
    // Disable sale price for products in the "no-discount" category.
    if ( is_object( $product ) && has_term( 'no-discount', 'product_cat', $product->get_id() ) ) {
        return '';
    }
    return $sale;
}, 10, 2 );

aswc_subscriptions_product_trial_length

Filter

Desde: 2.0.0 Archivo: includes/aswc-subscription-product-functions.php

Filters the trial length of a subscription product. Returns a positive integer or 0 if no trial.

ParámetroTipoDescripción
`$trial_length`intTrial length. 0 = no trial.
`$product`mixedProduct object or ID.

Devuelve: int — modified trial length.

PHP
add_filter( 'aswc_subscriptions_product_trial_length', function( $length, $product ) {
    // Extend every trial by 7 days for first-time customers.
    if ( $length > 0 && is_user_logged_in() && wc_get_customer_order_count( get_current_user_id() ) === 0 ) {
        return $length + 7;
    }
    return $length;
}, 10, 2 );

aswc_subscriptions_product_trial_period

Filter

Desde: 2.0.0 Archivo: includes/aswc-subscription-product-functions.php

Filters the trial period unit of a subscription product. One of 'day', 'week', 'month', 'year', or '' if no trial.

ParámetroTipoDescripción
`$trial_period`stringTrial period unit.
`$product`mixedProduct object or ID.

Devuelve: string — modified period.

PHP
add_filter( 'aswc_subscriptions_product_trial_period', function( $period, $product ) {
    // Translate "day" trials to "week" for legacy compat with another plugin.
    return 'day' === $period ? 'week' : $period;
}, 10, 2 );

aswc_subscriptions_product_trial_expiration_time

Filter

Desde: 2.0.0 Archivo: includes/aswc-subscription-product-functions.php

Filters the trial expiration timestamp (Unix, GMT) for a subscription product. Returns 0 if the product has no trial. Useful for sliding-trial logic, integrations with promo periods or seasonal extensions.

ParámetroTipoDescripción
`$timestamp`intUnix timestamp (GMT) when the trial ends, or 0.
`$product`mixedProduct object or ID.
`$from_date`stringReference date used for the calculation (GMT 'Y-m-d H:i:s').

Devuelve: int — possibly adjusted timestamp.

PHP
add_filter( 'aswc_subscriptions_product_trial_expiration_time', function( $ts, $product, $from_date ) {
    // Extend trial to end of natural week (next Sunday 23:59 GMT).
    if ( $ts > 0 ) {
        return strtotime( 'next sunday 23:59:59', $ts );
    }
    return $ts;
}, 10, 3 );

aswc_subscriptions_product_trial_expiration_date

Filter

Desde: 2.0.0 Archivo: includes/aswc-subscription-product-functions.php

Filters the trial expiration date (MySQL format, GMT) for a subscription product. Returns 'Y-m-d H:i:s' or 0 if no trial.

ParámetroTipoDescripción
`$value``string\int`
`$product`mixedProduct object or ID.
`$from_date`stringReference date used.

Devuelve: string|int.

PHP
add_filter( 'aswc_subscriptions_product_trial_expiration_date', function( $value, $product, $from_date ) {
    // Log every trial date lookup for analytics.
    error_log( sprintf( 'Trial date for product %d → %s', is_object($product)?$product->get_id():$product, (string) $value ) );
    return $value;
}, 10, 3 );

aswc_subscriptions_product_first_renewal_payment_time

Filter

Desde: 2.0.0 Archivo: includes/aswc-subscription-product-functions.php

Filters the timestamp (Unix, GMT) of the first renewal payment after the initial purchase. Returns 0 if the product never renews (single-cycle subscription).

ParámetroTipoDescripción
`$timestamp`intUnix timestamp of the first renewal, or 0.
`$product`mixedProduct object or ID.
`$from_date`stringReference date.
`$timezone`string'gmt' (default) or 'site'.

Devuelve: int.

PHP
add_filter( 'aswc_subscriptions_product_first_renewal_payment_time', function( $ts, $product, $from_date, $timezone ) {
    // For "magazine issue" products, snap the first renewal to the 1st of next month.
    if ( $ts > 0 && is_object($product) && has_term( 'magazine', 'product_cat', $product->get_id() ) ) {
        return strtotime( 'first day of next month 00:00 GMT', $ts );
    }
    return $ts;
}, 10, 4 );

aswc_subscriptions_product_first_renewal_payment_date

Filter

Desde: 2.0.0 Archivo: includes/aswc-subscription-product-functions.php

Filters the MySQL-formatted date (GMT) of the first renewal payment. Returns 'Y-m-d H:i:s' or 0.

ParámetroTipoDescripción
`$value``string\int`
`$product`mixedProduct object or ID.
`$from_date`stringReference date.
`$timezone`string'gmt' or 'site'.

Devuelve: string|int.

aswc_subscriptions_product_expiration_time

Filter

Desde: 2.0.0 Archivo: includes/aswc-subscription-product-functions.php

Filters the timestamp (Unix, GMT) when a subscription product expires. Returns 0 if the subscription never expires.

ParámetroTipoDescripción
`$timestamp`intUnix timestamp of expiration, or 0.
`$product`mixedProduct object or ID.
`$from_date`stringReference date.

Devuelve: int.

PHP
add_filter( 'aswc_subscriptions_product_expiration_time', function( $ts, $product, $from_date ) {
    // For seasonal subscriptions, force expiration to end of season (31 Dec).
    if ( $ts > 0 ) {
        return strtotime( gmdate('Y') . '-12-31 23:59:59 GMT' );
    }
    return $ts;
}, 10, 3 );

aswc_subscriptions_product_expiration_date

Filter

Desde: 2.0.0 Archivo: includes/aswc-subscription-product-functions.php

Filters the MySQL-formatted expiration date of a subscription product.

ParámetroTipoDescripción
`$value``string\int`
`$product`mixedProduct object or ID.
`$from_date`stringReference date.

Devuelve: string|int.

Cart and checkout

aswc_did_woocommerce_before_calculate_totals

Action

Desde: 1.0.0 Archivo: public/class-aswc-public.php

Re-emits woocommerce_before_calculate_totals after the plugin has finished its own cart adjustments (signup fee handling, recurring totals, prorations). Hook here when your code needs to read the cart after the plugin has rewritten it.

ParámetroTipoDescripción
`$cart`WC_CartCart object

aswc_is_upgrade_downgrade_order

Filter

Desde: 1.0.0 Archivo: public/class-aswc-public.php

Filters whether a checkout being processed is an upgrade/downgrade (plan switch) of an existing subscription.

ParámetroTipoDescripción
`$is_switch`boolDefault false
`$aswc_recurring_data`arrayRecurring data
`$order`WC_OrderOrder being created
`$posted_data`arrayPosted data
`$cart_item`arrayCart item

Devuelve: bool.

aswc_modify_cart_item_data

Filter

Desde: 1.0.0 Archivo: public/class-aswc-public.php

Filters the cart-item-data array stored against a subscription line at checkout (used by plan switching to keep "switch metadata" on the line).

ParámetroTipoDescripción
`$line_data`arrayCart-item data
`$cart_item`arrayCart item
`$is_switch`boolWhether this is a switch flow

Devuelve: array.

aswc_add_to_cart_validation

Filter

Desde: 1.0.0 Archivo: public/class-aswc-public.php

Allows blocking add-to-cart for subscription products. Return true to block; false (default) to allow.

ParámetroTipoDescripción
`$prevent`boolDefault false
`$product_id`intProduct ID
`$quantity`intQuantity being added

Devuelve: bool.

aswc_expiry_add_to_cart_validation

Filter

Desde: 1.0.0 Archivo: public/class-aswc-public.php

Specialised variant of the previous filter for products whose subscription has expired (re-purchase flow).

ParámetroTipoDescripción
`$validate`boolDefault false
`$product_id`intProduct ID
`$quantity`intQuantity

Devuelve: bool.

aswc_show_quantity_fields_for_subscriptions

Filter

Desde: 1.0.0 Archivo: public/class-aswc-public.php

Filters whether the quantity selector is rendered on subscription product pages.

ParámetroTipoDescripción
`$show`boolDefault value
`$product`WC_ProductProduct

Devuelve: bool.

aswc_add_cart_item_data

Filter

Desde: 1.0.0 Archivo: includes/loader/public/class-aswc-loaderpublic.php

Loader-level filter on woocommerce_add_cart_item_data for subscription products. Used to push subscription-specific keys into the cart-item array (e.g. selected start date, plan-switch references).

ParámetroTipoDescripción
`$cart_item_data`arrayCart-item data
`$product_id`intProduct ID
`$variation_id`intVariation ID

Devuelve: array.

Pricing display

aswc_show_sync_interval

Filter

Desde: 1.0.0 Archivo: public/class-aswc-public.php

Filters the HTML snippet that shows the billing cadence next to the price (e.g., / month). Fires inside aswc_subscription_product_get_price_html() when the product has an interval defined.

ParámetroTipoDescripción
`$aswc_price_html`stringHTML snippet for the interval (e.g. <span class="aswc_interval"> / month </span>).
`$product_id`intProduct ID.

Devuelve: string — HTML to append to the price.

PHP
add_filter( 'aswc_show_sync_interval', function( $html, $product_id ) {
    // Shorter format on category pages.
    if ( is_product_category() ) {
        return str_replace( ' / ', '/', $html );
    }
    return $html;
}, 10, 2 );

aswc_show_time_interval

Filter

Desde: 1.0.0 Archivo: public/class-aswc-public.php

Filters the HTML snippet that shows the expiry duration in the price (e.g., For 12 months). Fires when the product has an expiry configured.

ParámetroTipoDescripción
`$aswc_price_expiry_html`stringComputed expiry HTML.
`$product_id`intProduct ID.
`$cart_item`arrayCart item (may be empty when not in cart context).

Devuelve: string.

aswc_show_one_time_subscription_price

Filter

Desde: 1.0.0 Archivo: public/class-aswc-public.php

Filters the final price HTML built for a subscription product in the classic templates (product page, classic cart, classic checkout). Last hook before the price is rendered, after trial, signup fee and expiry HTML have been concatenated.

ParámetroTipoDescripción
`$price`stringFinal price HTML.
`$product_id`intProduct ID.
`$cart_item`arrayCart item (may be empty).

Devuelve: string.

PHP
add_filter( 'aswc_show_one_time_subscription_price', function( $price, $product_id, $cart_item ) {
    // Append "VAT included" notice to every subscription price.
    return $price . '<small class="vat-notice"> (VAT inc.)</small>';
}, 10, 3 );

aswc_show_one_time_subscription_price_block

Filter

Desde: 2.0.0 Archivo: public/class-aswc-public.php

Like aswc_show_one_time_subscription_price but applied in the Cart and Checkout Blocks context. Use this filter when customising the block UI; the classic one will not fire there.

ParámetroTipoDescripción
`$price`stringFinal price HTML for block context.
`$product_id`intProduct ID.
`$cart_item`arrayCart item.

Devuelve: string.

aswc_price_html

Filter

Desde: 1.0.0 Archivo: public/class-aswc-public.php

Final filter for the recurring-price HTML returned by aswc_subscription_product_get_price_html(). Fires after all the other price-display filters. Use it as a last-mile hook to wrap or annotate the full price.

ParámetroTipoDescripción
`$price`stringFinal price HTML.
`$aswc_price_html`stringThe interval portion only.
`$product_id`intProduct ID.
`$cart_item`arrayCart item (may be empty).

Devuelve: string.

aswc_cart_price_subscription

Filter

Desde: 1.0.0 Archivo: public/class-aswc-public.php

Filters the per-line price used in the classic cart for subscription products. Called twice depending on whether a signup fee applies: once with the signup fee, once with 0.

ParámetroTipoDescripción
`$amount`floatPer-line price (signup fee or 0).
`$cart_data`arrayCart item data.

Devuelve: float.

aswc_recurring_price_info

Filter

Desde: 1.0.0 Archivo: public/class-aswc-public.php

Filters the unit recurring price computed for a cart item (line total ÷ quantity, optionally including tax). Useful when you want to bypass the standard line-total calculation, e.g., for tiered or volumetric pricing.

ParámetroTipoDescripción
`$price`floatUnit recurring price.
`$cart_item`arrayCart item.
`$product_id`intProduct ID.

Devuelve: float.

aswc_rbpfw_price

Filter

Desde: 1.0.0 Archivo: public/class-aswc-public.php

Filters the price HTML displayed on the product page right before passing it to the wrapper that adds interval / trial / signup HTML. Named for compatibility with the role-based pricing add-on, but available even when that add-on is not installed.

ParámetroTipoDescripción
`$price`stringPrice HTML from $product->get_price_html().
`$product`WC_ProductProduct object.

Devuelve: string.

aswc_rbpfw_cart_price

Filter

Desde: 1.0.0 Archivo: public/class-aswc-public.php

Like aswc_rbpfw_price but for the classic cart line item.

ParámetroTipoDescripción
`$product_price`stringCart line price HTML.
`$cart_item`arrayCart item.

Devuelve: string.

aswc_block_cart_price

Filter

Desde: 2.0.0 Archivo: public/class-aswc-public.php

Filters the structured price-data payload sent to the Cart Blocks (Store API) for a subscription line item. The payload is an associative array with at least name, hidden and value. Use this hook to inject additional data fields the block UI can consume.

ParámetroTipoDescripción
`$data`arrayArray with keys name, hidden, value.

Devuelve: array.

PHP
add_filter( 'aswc_block_cart_price', function( $data ) {
    $data['css_class'] = 'recurring-price-block';
    return $data;
} );

aswc_subscription_box_block_cart_price

Filter

Desde: 2.0.0 Archivo: public/class-aswc-public.php

Same as aswc_block_cart_price but specific to Subscription Box (Multi-Product) line items in the Cart Blocks.

ParámetroTipoDescripción
`$data`arrayArray with keys name, hidden, value.

Devuelve: array.

aswc_display_recurring_price

Filter

Desde: 1.0.0 Archivo: admin/partials/class-aswc-admin-subscription-list.php

Filters the formatted recurring total displayed in the admin subscriptions list table (WooCommerce → Subscriptions). Use it to add per-subscription currency markers, conversion rates, or annotations only meaningful inside the admin.

ParámetroTipoDescripción
`$aswc_recurring_total`stringFormatted price (from wc_price()).
`$id`intSubscription ID.

Devuelve: string.

aswc_sub_recurring_total_my_account_page

Filter

Desde: 1.0.0 Archivo: public/class-aswc-public.php

Filters the recurring price shown on My Account → Subscriptions before it is formatted with wc_price(). Receives the raw numeric total, not an HTML string.

ParámetroTipoDescripción
`$price`floatRecurring total.
`$subscription_id`intSubscription ID.

Devuelve: float.

aswc_recerring_total_price_list_table

Filter

Desde: 1.0.0 Archivo: admin/partials/class-aswc-admin-subscription-list.php

> Naming note. The hook name contains a typo (recerring instead of recurring). Kept as-is to avoid breaking installations that already hook it. A future major release may introduce aswc_recurring_total_price_list_table as a clean alias and deprecate this one. Filters the formatted recurring total used in the admin subscriptions list, after it has already been processed by aswc_recerring_total_price_list_table_callback(). Last-mile hook before the value is inserted into the row.

ParámetroTipoDescripción
`$aswc_recurring_total`stringFormatted price.
`$id`intSubscription ID.

Devuelve: string.

Subscription Box (multi-product)

aswc_subscription_box_settings_array

Filter

Desde: 1.0.0 Archivo: admin/class-aswc-admin.php

Filters the settings array rendered on the Subscription Box settings tab.

Devuelve: array.

aswc_subscription_box_product_edit_field

Action

Desde: 1.0.0 Archivo: admin/class-aswc-admin.php

Fires inside the Subscription Box product editor, after the plugin's own fields have been printed. Use to render add-on fields.

ParámetroTipoDescripción
`$post_id`intProduct ID

Plan switching (upgrade / downgrade)

aswc_manage_line_total_for_plan_switch

Filter

Desde: 1.0.0 Archivo: public/class-aswc-public.php

Filters the line-total (and line-subtotal) of a cart item that participates in a plan switch, before the order line is written. Fired twice per item: once for total, once for subtotal.

ParámetroTipoDescripción
`$line_total`floatComputed amount
`$cart_item`arrayCart item
`$is_switch`boolSwitch context flag

Devuelve: float.

aswc_upgrade_downgrade_button

Filter

Desde: 1.0.0 Archivo: includes/loader/public/class-aswc-loaderpublic.php

Filters the HTML of the upgrade/downgrade button rendered on My Account.

ParámetroTipoDescripción
`$html`stringDefault button markup
`$subscription_id`intSubscription ID
`$product_id`intTarget product

Devuelve: string.

Start dates

aswc_show_start_date_frontend

Action

Desde: 1.0.0 Archivo: public/class-aswc-public.php

Fires on the product page so the Start Date module (or a custom replacement) can render its date picker.

ParámetroTipoDescripción
`$product`WC_ProductProduct being rendered

aswc_start_date_filter_dates

Filter

Desde: 1.0.0 Archivo: includes/start-date/class-aswc-start-date-cart.php

Filters the array of allowed start dates exposed to the date picker. Override to enforce custom blackouts (holidays, anchor day, ...).

ParámetroTipoDescripción
`$dates`arrayDefault allowed dates (timestamps)
`$product`WC_ProductProduct being configured

Devuelve: array.

aswc_start_date_changed

Action

Desde: 1.0.0 Archivo: includes/start-date/class-aswc-start-date-order.php

Fires when the start date of a subscription is changed (admin or customer path).

ParámetroTipoDescripción
`$subscription_id`intSubscription ID
`$new_start_date``int\string`

aswc_start_date_set_next_payment

Action

Desde: 1.0.0 Archivo: admin/start-date/class-aswc-start-date-admin.php

Fires when the admin updates the next-payment date as a side-effect of setting a new start date.

ParámetroTipoDescripción
`$subscription_id`intSubscription ID
`$first_payment_date`intNew first-payment timestamp

aswc_start_date_order

Action

Desde: 1.0.0 Archivo: includes/start-date/class-aswc-start-date-order.php

Fires after start-date metadata has been written onto a freshly-created order.

ParámetroTipoDescripción
`$order_id`intOrder ID
`$start_date`intStart date (timestamp)

aswc_start_date_subscription_activated

Action

Desde: 1.0.0 Archivo: includes/start-date/class-aswc-start-date-scheduler.php

Fires when a deferred subscription is auto-activated by the start-date scheduler at the customer's chosen date.

ParámetroTipoDescripción
`$subscription_id`intSubscription ID

aswc_start_date_order_activated

Action

Desde: 1.0.0 Archivo: includes/start-date/class-aswc-start-date-scheduler.php

Companion of the previous hook for the parent order.

ParámetroTipoDescripción
`$order_id`intParent order ID

aswc_start_date_subscriptions_scheduled_for_order

Action

Desde: 1.0.0 Archivo: includes/start-date/class-aswc-start-date-status.php

Fires once per parent order when the start-date module has marked all subscriptions as scheduled.

ParámetroTipoDescripción
`$order_id`intParent order ID
`$subscription_ids`int[]Scheduled subscription IDs

aswc_admin_changed_subscription_to_scheduled

Action

Desde: 1.0.0 Archivo: includes/start-date/class-aswc-start-date-status.php

Fires when the admin manually transitions a subscription into the scheduled status.

ParámetroTipoDescripción
`$subscription_id`intSubscription ID

My Account & frontend

aswc_my_account_auto_renew_toggle_enabled

Filter

Desde: 1.0.0 Archivo: public/start-date/class-aswc-start-date-frontend.php

Toggles whether the "auto-renew" control is shown on My Account.

ParámetroTipoDescripción
`$enabled`boolDefault false

Devuelve: bool.

aswc_order_details_html_before_cancel

Action

Desde: 1.0.0 Archivo: public/partials/templates/myaccount/aswc-show-subscription-details.php

Fires inside the "Subscription details" template, just before the cancel button block.

aswc_customer_cancel_button

Filter

Desde: 1.0.0 Archivo: public/partials/templates/myaccount/aswc-show-subscription-details.php

Filters the HTML of the customer-facing cancel button.

ParámetroTipoDescripción
`$html`stringDefault button markup

Devuelve: string.

aswc_order_details_html_after_cancel

Action

Desde: 1.0.0 Archivo: public/partials/templates/myaccount/aswc-show-subscription-details.php

Fires after the entire cancel block (button + helper text).

aswc_subscription_details_html

Action

Desde: 1.0.0 Archivo: public/partials/templates/myaccount/aswc-show-subscription-details.php

Fires inside the subscription metadata block — use to add extra rows (next payment, next renewal coupon, …).

ParámetroTipoDescripción
`$subscription_id`intSubscription ID

aswc_product_details_html

Action

Desde: 1.0.0 Archivo: public/partials/templates/myaccount/aswc-show-subscription-details.php

Fires inside the product list of the subscription detail page.

ParámetroTipoDescripción
`$subscription_id`intSubscription ID

aswc_after_subscription_details

Action

Desde: 1.0.0 Archivo: public/partials/templates/myaccount/aswc-show-subscription-details.php

Fires at the very end of the subscription detail template.

ParámetroTipoDescripción
`$subscription_id`intSubscription ID

aswc_check_parent_order

Filter

Desde: 1.0.0 Archivo: public/partials/templates/myaccount/aswc-subscriptions.php

Filters whether an order should be considered the parent of a subscription when listing the customer's subscriptions in My Account.

ParámetroTipoDescripción
`$is_parent`boolDefault value
`$parent_order_id`intOrder ID under evaluation

Devuelve: bool.

aswc_supported_add_payment_gateway

Filter

Desde: 1.0.0 Archivo: public/partials/templates/myaccount/aswc-add-new-payment-details.php

Filters whether a given gateway should be exposed in the "Add new payment method" UI on My Account.

ParámetroTipoDescripción
`$supported`boolDefault value
`$gateway_id`stringGateway id

Devuelve: bool.

aswc_display_subscription_recerring_total_account_page

Action

Desde: 1.0.0

Type: Action Since: 1.0.0 Files: public/partials/templates/myaccount/aswc-show-subscription-details.php, public/partials/templates/myaccount/aswc-subscriptions.php, includes/aswc-common-functions.php, includes/loader/includes/aswc-loader-common-functions.php, several email templates. Fires inside My Account and email templates when the recurring total is about to be rendered. > Naming. The hook name contains the typo recerring (instead of recurring). It is kept verbatim to avoid breaking integrations that already depend on it. A correctly-spelled action aswc_display_subscription_recurring_total_account_page is fired in parallel from includes/aswc-common-functions.php since 1.0.0 — prefer the corrected name in new code, but be aware both fire.

ParámetroTipoDescripción
`$subscription_id`intSubscription ID

aswc_display_subscription_recurring_total_account_page

Action

Desde: 1.0.0 Archivo: includes/aswc-common-functions.php

Correctly-spelled twin of aswc_display_subscription_recerring_total_account_page. Both fire from the same call site so listeners can choose either name.

ParámetroTipoDescripción
`$subscription_id`intSubscription ID

Subscription dates and helpers

aswc_subs_curent_time

Filter

Desde: 1.0.0

Type: Filter Since: 1.0.0 Files: public/class-aswc-public.php, includes/loader/admin/class-aswc-loaderadmin.php Filters the "current time" used by the activation flow when computing subscription dates. Override to inject a fixed clock during testing. > Naming. Misspelled curent (instead of current). Kept for backwards compatibility.

ParámetroTipoDescripción
`$time`intcurrent_time( 'timestamp' )
`$subscription_id`intSubscription ID

Devuelve: int.

aswc_next_payment_date

Filter

Desde: 1.0.0 Archivo: public/class-aswc-public.php

Filters the computed next-payment date during activation.

ParámetroTipoDescripción
`$next_payment`intComputed timestamp
`$subscription_id`intSubscription ID

Devuelve: int.

aswc_subscription_end_date

Filter

Desde: 1.0.0 Archivo: public/class-aswc-public.php

Filters the computed end date during activation.

ParámetroTipoDescripción
`$end_date`intComputed timestamp
`$subscription_id`intSubscription ID

Devuelve: int.

aswc_after_updated_subscription_dates

Action

Desde: 1.0.0 Archivo: includes/loader/admin/class-aswc-loaderadmin.php

Fires after the loader has updated the date triplet (next payment / trial end / expiry) on a subscription.

ParámetroTipoDescripción
`$subscription_id`intSubscription ID

Notifications and emails

aswc_email_classes

Filter

Desde: 1.0.0 Archivo: includes/class-aswc.php

Filters the array of email classes the plugin registers with WooCommerce. Use to add a custom WC_Email subclass.

ParámetroTipoDescripción
`$emails`arrayEmail instances keyed by id

Devuelve: array.

PHP
add_filter( 'aswc_email_classes', function( $emails ) {
    require_once __DIR__ . '/class-my-custom-aswc-email.php';
    $emails['my_custom_aswc_email'] = new My_Custom_ASWC_Email();
    return $emails;
} );

aswc_renewal_email_notification

Action

Desde: 1.0.0 Archivo: includes/aswc-common-functions.php

Fires when the renewal email helper has finished sending the standard renewal notification, so integrators can chain a follow-up.

ParámetroTipoDescripción
`$subscription_id`intSubscription ID
`$renewal_order_id`intRenewal order ID

aswc_customer_notification_sent

Action

Desde: 1.0.0 Archivo: scheduler-api/notifications/aswc-notifications-functions.php

Fires after the scheduler dispatches a customer notification (email or external channel).

ParámetroTipoDescripción
`$notification_type`stringNotification type slug
`$subscription_id`intSubscription ID

aswc_subscription_customer_notification_is_period_too_short

Filter

Desde: 1.0.0 Archivo: scheduler-api/notifications/class-aswc-scheduler-notifications.php

Filters whether a billing period is "too short" to bother scheduling a heads-up notification (e.g. weekly subscriptions skip the 7-day reminder). Override to force-enable or force-disable the threshold.

ParámetroTipoDescripción
`$is_too_short`boolDefault decision
`$subscription`ASWC_SubscriptionSubscription

Devuelve: bool.

aswc_subscription_customer_notification_time_offset

Filter

Desde: 1.0.0 Archivo: scheduler-api/notifications/class-aswc-scheduler-notifications.php

Filters the time offset (in seconds) used to place the notification before its target event (renewal, expiry, trial end, …).

ParámetroTipoDescripción
`$offset`intDefault offset
`$notification_type`stringNotification type
`$subscription`ASWC_SubscriptionSubscription

Devuelve: int.

aswc_subscription_valid_customer_notification_types

Filter

Desde: 1.0.0 Archivo: scheduler-api/notifications/class-aswc-scheduler-notifications.php

Filters the array of valid notification-type slugs accepted by the notifications scheduler. Add-ons can register new types here.

ParámetroTipoDescripción
`$types`string[]Default types

Devuelve: string[].

aswc_subscription_customer_notification_statuses

Filter

Desde: 1.0.0 Archivo: scheduler-api/notifications/class-aswc-scheduler-notifications.php

Filters the list of subscription statuses that qualify for customer notifications. The default is [ 'active', 'pending-cancel' ] — add on-hold here to keep notifying customers whose subscription is on hold, for example.

ParámetroTipoDescripción
`$statuses`string[]Allowed statuses
`$subscription`ASWC_SubscriptionSubscription

Devuelve: string[].

PHP
add_filter( 'aswc_subscription_customer_notification_statuses', function( $statuses, $subscription ) {
    $statuses[] = 'on-hold';
    return $statuses;
}, 10, 2 );

Roles and users

aswc_get_users_subscriptions

Filter

Desde: 1.0.0 Archivo: includes/aswc-user-subscription-functions.php

Filters the list of subscriptions returned for a user.

ParámetroTipoDescripción
`$subscriptions`arrayDefault list
`$user_id`intUser ID

Devuelve: array.

aswc_user_has_subscription

Filter

Desde: 1.0.0 Archivo: includes/aswc-user-subscription-functions.php

Filters the boolean returned by aswc_user_has_subscription().

ParámetroTipoDescripción
`$has`boolDefault value
`$user_id`intUser ID
`$product_id`intOptional product to scope the check

Devuelve: bool.

aswc_subscriber_default_role

Filter

Desde: 1.0.0 Archivo: includes/aswc-user-subscription-functions.php

Filters the role assigned to a customer when their subscription becomes active.

ParámetroTipoDescripción
`$role`stringDefault subscriber

Devuelve: string.

aswc_inactive_default_role

Filter

Desde: 1.0.0 Archivo: includes/aswc-user-subscription-functions.php

Filters the role applied when a subscription becomes inactive.

ParámetroTipoDescripción
`$role`stringDefault customer

Devuelve: string.

aswc_update_users_role

Filter

Desde: 1.0.0 Archivo: includes/aswc-user-subscription-functions.php

Allows skipping the role update entirely. Return false to keep the current role.

ParámetroTipoDescripción
`$update`boolDefault true
`$user_id`intUser ID
`$new_role`stringComputed new role

Devuelve: bool.

aswc_updated_users_role

Action

Desde: 1.0.0 Archivo: includes/aswc-user-subscription-functions.php

Fires after the role has been updated.

ParámetroTipoDescripción
`$user_id`intUser ID
`$new_role`stringNew role

aswc_account_created_for_subscription

Action

Desde: 1.0.0 Archivo: includes/class-aswc-checkout-account-handler.php

Fires when the plugin auto-creates a WordPress account during subscription checkout (guests buying a subscription always get an account).

ParámetroTipoDescripción
`$user_id`intNew user ID
`$order_id`intParent order ID

Admin UI: settings

aswc_pre_save_settings

Action

Desde: 0.24.0 Archivo: admin/class-aswc-wc-settings.php

Fires before saving the plugin settings.

ParámetroTipoDescripción
`$section`stringSettings section being saved

aswc_settings_before_save

Filter

Desde: 0.24.0 Archivo: admin/class-aswc-wc-settings.php

Filters the settings array before the values are written.

ParámetroTipoDescripción
`$settings`arrayField definitions
`$section`stringSection

Devuelve: array.

aswc_settings_saved

Action

Desde: 0.24.0 Archivo: admin/class-aswc-wc-settings.php

Fires after the settings have been saved.

ParámetroTipoDescripción
`$section`stringSaved section

aswc_plugin_standard_admin_settings_tabs

Filter

Desde: 1.0.0 Archivo: includes/class-aswc.php

Filters the array of admin settings tabs before the plugin's default tabs are appended. Use this to add a tab that should appear first in the navigation.

ParámetroTipoDescripción
`$aswc_default_tabs`arrayMap of tab id → [ 'title', 'name', 'file_path' ].

Devuelve: array.

PHP
add_filter( 'aswc_plugin_standard_admin_settings_tabs', function( $tabs ) {
    $tabs['my-agency-tab'] = array(
        'title'     => 'Agency tools',
        'name'      => 'my-agency-tab',
        'file_path' => plugin_dir_path( __FILE__ ),
    );
    return $tabs;
} );

aswc_plugin_standard_admin_settings_tabs_before

Filter

Desde: 1.0.0 Archivo: includes/class-aswc.php

Filters the tabs array after the default tabs are appended but before the final pass. Use this to inject a tab in the middle of the navigation.

ParámetroTipoDescripción
`$aswc_default_tabs`arrayTabs map.

Devuelve: array.

aswc_plugin_standard_admin_settings_tabs_end

Filter

Desde: 1.0.0 Archivo: includes/class-aswc.php

Last-mile filter for the tabs array. Anything added here appears at the end of the navigation. Use it to add an "About" or "License" tab that should always be the last one.

ParámetroTipoDescripción
`$aswc_default_tabs`arrayTabs map.

Devuelve: array.

aswc_add_general_settings_fields

Filter

Desde: 1.0.0 Archivo: admin/class-aswc-admin.php

Filters the list of form fields that render on the General tab of the plugin's settings screen. Each field is an array describing type, id, label, options, etc., consistent with the plugin's internal form renderer.

ParámetroTipoDescripción
`$aswc_settings_general`arrayList of field-definition arrays.

Devuelve: array.

aswc_add_advance_settings_fields

Filter

Desde: 1.0.0 Archivo: includes/loader/admin/class-aswc-loaderadmin.php

Like aswc_add_general_settings_fields but for the Advanced Settings tab.

ParámetroTipoDescripción
`$aswc_settings_general`arrayField-definition arrays.

Devuelve: array.

aswc_general_settings_array

Filter

Desde: 1.0.0 Archivo: admin/class-aswc-admin.php

Filters the schema array used to save the General tab. Different from aswc_add_general_settings_fields (which produces the render schema) in that this one is consumed by aswc_admin_save_tab_settings() to decide which keys to read from $_POST. Add a key here if you have added a field that the saver must persist.

ParámetroTipoDescripción
`$schema`arrayDefault array(). Add [ 'id' => 'option_key', 'type' => 'text', ... ] entries.

Devuelve: array.

aswc_others_settings_array

Filter

Desde: 1.0.0 Archivo: includes/loader/admin/class-aswc-loaderadmin.php

Like aswc_general_settings_array but for the Other / Advanced settings save handler.

ParámetroTipoDescripción
`$schema`arrayDefault array().

Devuelve: array.

aswc_api_settings_array

Filter

Desde: 1.0.0 Archivo: includes/loader/admin/partials/woocommerce-subscriptions-pro-api.php

Filters the field-definition array that renders the API tab. Use it to expose additional API-related options (extra secret keys, allowed origins, etc.).

ParámetroTipoDescripción
`$aswc_api_settings`arrayDefault array().

Devuelve: array.

aswc_template_settings_array

Filter

Desde: 1.0.0 Archivo: admin/partials/aswc-subscriptions-table.php

Filters the field-definition array rendered above the Subscriptions table in the admin. Use it to add filtering controls or quick actions to the table view.

ParámetroTipoDescripción
`$aswc_template_settings`arrayDefault array().

Devuelve: array.

aswc_swf_settings_tabs

Filter

Desde: 1.0.0 Archivo: admin/class-aswc-admin.php

Filters the array of product editor tabs when the product is a subscription. The plugin adds a Subscription Settings tab; use this filter to add additional tabs alongside it.

ParámetroTipoDescripción
`$tabs`arrayWooCommerce product data tabs (id → tab config).

Devuelve: array.

PHP
add_filter( 'aswc_swf_settings_tabs', function( $tabs ) {
    $tabs['my_extra_tab'] = array(
        'label'    => 'Custom subscription extras',
        'target'   => 'my_extra_tab_panel',
        'priority' => 90,
    );
    return $tabs;
} );

aswc_swf_settings_tabs_class

Filter

Desde: 1.0.0 Archivo: admin/class-aswc-admin.php

Filters the CSS classes applied to the plugin's product-editor Subscription Settings tab. Use it to hide the tab for certain product types (the standard show_if_* class pattern) or to attach custom JS hooks.

ParámetroTipoDescripción
`$classes`arrayDefault array().

Devuelve: array.

PHP
add_filter( 'aswc_swf_settings_tabs_class', function( $classes ) {
    // Only show on simple and variable products.
    $classes[] = 'show_if_simple';
    $classes[] = 'show_if_variable';
    return $classes;
} );

Admin UI: product editing

aswc_product_edit_field

Action

Desde: 1.0.0 Archivo: admin/class-aswc-admin.php

Fires inside the Subscription product-edit panel after the plugin's own fields. Use to add custom inputs.

ParámetroTipoDescripción
`$post_id`intProduct ID

aswc_pre_save_subscription_product_fields

Action

Desde: 0.24.0 Archivo: admin/class-aswc-admin.php

Fires before saving subscription product fields (right at the top of the save handler).

ParámetroTipoDescripción
`$post_id`intProduct ID
`$post_data`array$_POST payload
PHP
add_action( 'aswc_pre_save_subscription_product_fields', function( $post_id, $post_data ) {
    if ( isset( $post_data['_custom_subscription_field'] ) ) {
        $value = sanitize_text_field( $post_data['_custom_subscription_field'] );
        if ( strlen( $value ) > 100 ) {
            add_action( 'admin_notices', function() {
                echo '<div class="error"><p>Custom field cannot exceed 100 characters.</p></div>';
            } );
        }
    }
}, 10, 2 );

aswc_save_simple_subscription_field

Action

Desde: 0.1.0 Archivo: admin/class-aswc-admin.php

Fires after the simple subscription product fields have been saved.

ParámetroTipoDescripción
`$post_id`intProduct ID
`$post_data`array$_POST payload

aswc_save_simple_subscription_field_for_wcfm

Action

Desde: 1.0.0 Archivo: includes/loader/package/wcfm-compatibility/class-aswc-loaderwcfm-compatibility.php

WCFM (vendor dashboard) variant of aswc_save_simple_subscription_field. Fires when a vendor saves a subscription product through the WCFM frontend dashboard.

ParámetroTipoDescripción
`$post_id`intProduct ID
`$post_data`arrayPosted data

aswc_product_fields_subscription_fields_options

Filter

Desde: 1.0.0 Archivo: includes/loader/package/wcfm-compatibility/class-aswc-loaderwcfm-compatibility.php

Filters the WCFM field-definitions array used to render the subscription product editor inside the WCFM vendor dashboard. Useful to add or remove vendor-side controls without touching WooCommerce admin.

ParámetroTipoDescripción
`$fields`arrayWCFM field definitions keyed by meta key

Devuelve: array.

aswc_save_variation_field

Action

Desde: 1.0.0 Archivo: includes/loader/admin/class-aswc-loaderadmin.php

Fires after a variable-subscription variation has been saved.

ParámetroTipoDescripción
`$variation_id`intVariation ID
`$post_data`arrayPosted data

aswc_create_variation_field

Action

Desde: 1.0.0 Archivo: includes/loader/admin/class-aswc-loaderadmin.php

Fires inside the variation editor so add-ons can render extra fields.

ParámetroTipoDescripción
`$loop`intVariation loop index
`$variation_data`arrayVariation data
`$variation`WP_PostVariation post

aswc_add_lock_fields

Filter

Desde: 1.0.0 Archivo: includes/loader/admin/class-aswc-loaderadmin.php

Filters the array of admin fields locked behind Pro. Add to it to lock additional fields if you ship vertical extensions on top of the Pro loader.

ParámetroTipoDescripción
`$fields`arrayLocked field IDs

Devuelve: array.

aswc_add_lock_fields_ids_pro

Filter

Desde: 1.0.0 Archivo: admin/class-aswc-admin.php

Free-edition complement of aswc_add_lock_fields. Filters the IDs of fields the free edition should mark as Pro-only.

ParámetroTipoDescripción
`$ids`arrayLocked field IDs

Devuelve: array.

aswc_status_array

Filter

Desde: 1.0.0

Type: Filter Since: 1.0.0 Files: advanced-subscriptions-for-woocommerce.php, admin/partials/class-aswc-admin-subscription-list.php, includes/loader/admin/class-aswc-loaderadmin.php Filters the list of subscription statuses (slug → label) used in admin UIs.

ParámetroTipoDescripción
`$statuses`arrayDefault statuses

Devuelve: array.

Admin UI: subscriptions list table

aswc_column_subscription_table

Filter

Desde: 1.0.0 Archivo: admin/partials/class-aswc-admin-subscription-list.php

Filters the columns of the admin subscriptions list table.

ParámetroTipoDescripción
`$columns`arrayDefault columns

Devuelve: array.

aswc_add_action_details

Filter

Desde: 1.0.0 Archivo: admin/partials/class-aswc-admin-subscription-list.php

Filters the row-actions exposed for each subscription row.

ParámetroTipoDescripción
`$actions`arrayDefault actions
`$subscription_id`intSubscription ID

Devuelve: array.

aswc_add_case_column

Filter

Desde: 1.0.0 Archivo: admin/partials/class-aswc-admin-subscription-list.php

Catch-all filter invoked when the list table renders a column it does not natively know about. Return the rendered HTML for your custom column.

ParámetroTipoDescripción
`$rendered``string\false`
`$column_name`stringColumn being rendered
`$item`arrayRow data

Devuelve: string\|false.

aswc_subscription_cancel

Action

Desde: 1.0.0 Archivo: admin/partials/class-aswc-admin-subscription-list.php

Fires when a subscription is cancelled through the bulk action.

ParámetroTipoDescripción
`$subscription_id`intSubscription ID
`$action`stringBulk action label (Cancel)

aswc_process_bulk_reset_option

Action

Desde: 1.0.0 Archivo: admin/partials/class-aswc-admin-subscription-list.php

Fires when a bulk action other than the built-in ones is triggered, so add-ons can implement their own bulk operations.

ParámetroTipoDescripción
`$action`stringAction slug
`$post_data`array$_POST payload

aswc_bulk_option

Filter

Desde: 1.0.0

Type: Filter Since: 1.0.0 Files: admin/partials/class-aswc-admin-subscription-list.php, includes/loader/admin/partials/class-aswc-loaderview-renewal-list.php Filters the bulk-action menu of the admin subscriptions list (and the Pro renewals list).

ParámetroTipoDescripción
`$actions`arrayDefault options

Devuelve: array.

aswc_extra_tablenav_html

Action

Desde: 1.0.0 Archivo: admin/partials/class-aswc-admin-subscription-list.php

Fires inside extra_tablenav so add-ons can inject extra filters or buttons.

ParámetroTipoDescripción
`$which`stringtop or bottom

aswc_add_button_manual_subscription

Action

Desde: 1.0.0 Archivo: admin/partials/class-aswc-admin-subscription-list.php

Fires next to the standard list-table buttons; use to render a "Create manual subscription" button (the Pro loader does this).

aswc_subs_table_data

Filter

Desde: 1.0.0 Archivo: admin/partials/class-aswc-admin-subscription-list.php

Filters each row of the admin subscriptions list table before it is rendered. Use to add (or rewrite) columns programmatically — the WCFM compatibility shim attaches to it to add a "Vendor" column on multi-vendor sites.

ParámetroTipoDescripción
`$row`arrayRow data keyed by column name (subscription_id, parent_order_id, status, items, total, start_date, trial_end, next_payment_date, last_order_date, subscriptions_expiry_date, …)

Devuelve: array.

aswc_csv_file_data

Filter

Desde: 1.0.0 Archivo: includes/loader/admin/class-aswc-loaderadmin.php

Filters each row of the Subscriptions → Active report CSV export. Pairs with aswc_subs_csv_title to add new columns or rewrite values before they are written to disk.

ParámetroTipoDescripción
`$row`arrayRow data keyed by column id

Devuelve: array.

aswc_subs_csv_title

Filter

Desde: 1.0.0 Archivo: includes/loader/admin/class-aswc-loaderadmin.php

Filters the column titles of the Subscriptions → Active report CSV export. Companion of aswc_csv_file_data.

ParámetroTipoDescripción
`$titles`arrayColumn titles keyed by column id

Devuelve: array.

Admin cancellation

aswc_allow_admin_cancel_subscription

Filter

Desde: 0.24.0 Archivo: admin/class-aswc-admin.php

Allows controlling whether an admin can cancel a specific subscription.

ParámetroTipoDescripción
`$allow`boolDefault true
`$subscription_id`intSubscription ID

Devuelve: bool.

aswc_pre_admin_cancel_subscription

Action

Desde: 0.24.0 Archivo: admin/class-aswc-admin.php

Fires before an admin cancels a subscription.

ParámetroTipoDescripción
`$subscription_id`intSubscription ID
`$status`stringCurrent status

Compatibility and utilities

aswc_logging

Filter

Desde: 1.0.0 Archivo: includes/class-aswc-log.php

Filters whether the logger should write a given message. Return false to suppress the log line.

ParámetroTipoDescripción
`$enabled`boolDefault true
`$message`stringMessage

Devuelve: bool.

aswc_pro_active

Filter

Desde: 1.0.0 Archivo: includes/aswc-common-functions.php

Filters whether the Pro loader is considered active. Used to gate Pro-only features.

ParámetroTipoDescripción
`$active`boolDefault detection result

Devuelve: bool.

aswc_load_embedded_redsys_gateway

Filter

Desde: 1.0.0 Archivo: includes/woo-redsys-gateway/class-aswc-redsys-loader.php

Toggles whether the embedded Redsys gateway should load (e.g. disable when the standalone Redsys plugin is also active).

ParámetroTipoDescripción
`$load`boolDefault detection result

Devuelve: bool.

aswc_register_custom_order_types

Filter

Desde: 1.0.0 Archivo: advanced-subscriptions-for-woocommerce.php

Filters the args array passed to wc_register_order_type( 'aswc_subscriptions', ... ) when the plugin registers its custom order type on the init hook (priority 5). Override here to customise labels, capabilities, admin visibility, supports flags, and so on.

ParámetroTipoDescripción
`$args`arrayOrder-type registration args

Devuelve: array.

PHP
add_filter( 'aswc_register_custom_order_types', function( $args ) {
    // Hide the post type from menus on a slim-admin install.
    $args['show_in_menu']      = false;
    $args['show_in_admin_bar'] = false;
    return $args;
} );

aswc_validate_coupon_type_for_giftcard

Filter

Desde: 1.0.0 Archivo: includes/loader/common/class-aswc-loadercommon.php

Filters whether a given coupon type should be considered a gift-card coupon for the purposes of the WGM (Woo Gift Cards by Multiwebinc) compatibility shim.

Devuelve: bool.

aswc_check_order_status

Filter

Desde: 1.0.0 Archivo: includes/loader/common/class-aswc-loadercommon.php

Filters the array of order statuses considered "successful" by the loader when reporting on orders.

Devuelve: string[].

aswc_wgm_send_mail_remaining_amount

Action

Desde: 1.0.0 Archivo: includes/loader/common/class-aswc-loadercommon.php

Fires inside the WGM compatibility shim after the customer is emailed about the remaining gift-card amount.

aswc_wgm_coupon_reporting_with_order

Action

Desde: 1.0.0 Archivo: includes/loader/common/class-aswc-loadercommon.php

Fires inside the WGM compatibility shim when a gift-card coupon is reported against an order.

aswc_other_payment_gateway_renewal

Action

Desde: 1.0.0 Archivo: includes/loader/admin/class-aswc-loaderadmin.php

Fires when a renewal is processed through a non-bridge gateway (typically the legacy "manual" renewal flow used as fallback).

ParámetroTipoDescripción
`$subscription_id`intSubscription ID
`$renewal_order_id`intRenewal order ID

aswc_page_screen

Filter

Desde: 1.0.0

Type: Filter Since: 1.0.0 Files: includes/aswc-common-functions.php, includes/loader/includes/aswc-loader-common-functions.php Filters the screen-id list considered to be "plugin admin pages" (used for asset enqueueing).

Devuelve: string[].

aswc_subscription_contains_synced_product

Filter

Desde: 1.0.0 Archivo: includes/aswc-subscription-helpers.php

Filters whether a subscription contains a sync-enabled product (used by date-anchoring code).

ParámetroTipoDescripción
`$contains`boolDefault value
`$subscription`ASWC_SubscriptionSubscription

Devuelve: bool.

aswc_cart_contains_switches

Filter

Desde: 1.0.0 Archivo: includes/aswc-subscription-helpers.php

Filters whether the current cart contains a plan switch.

ParámetroTipoDescripción
`$contains`boolDefault value
`$cart`WC_CartCart

Devuelve: bool.

aswc_is_manual_renewal_required

Filter

Desde: 1.0.0 Archivo: includes/aswc-subscription-helpers.php

Filters whether a subscription must use manual renewal regardless of the configured gateway.

ParámetroTipoDescripción
`$required`boolDefault value
`$subscription`ASWC_SubscriptionSubscription

Devuelve: bool.

advanced_subscriptions_woocommerce_scheduled_action_hook

Filter

Desde: 2.0.0 Archivo: scheduler-api/core/class-aswc-scheduler-core.php

Filters the Action Scheduler hook name that the plugin uses to fire a given subscription date event. The default mapping is:

ParámetroTipoDescripción
`$hook`stringAction Scheduler hook to fire.
`$date_type`stringDate type that produced the hook.

Devuelve: string.

PHP
add_filter( 'advanced_subscriptions_woocommerce_scheduled_action_hook', function( $hook, $date_type ) {
    if ( 'next_payment' === $date_type ) {
        return 'my_custom_renewal_hook';
    }
    return $hook;
}, 10, 2 );

advanced_subscriptions_woocommerce_scheduled_action_args

Filter

Desde: 2.0.0 Archivo: scheduler-api/core/class-aswc-scheduler-core.php

Filters the arguments passed to the Action Scheduler when scheduling a subscription event. The default args include the subscription ID and a is_retry flag for retry events.

ParámetroTipoDescripción
`$action_args`arrayArgs array (will be [ 'subscription_id' => …, ...other ]).
`$date_type`stringDate type.
`$subscription`objectSubscription object.

Devuelve: array.

PHP
add_filter( 'advanced_subscriptions_woocommerce_scheduled_action_args', function( $args, $date_type, $subscription ) {
    // Carry a tenant_id alongside, for multi-tenant scheduling logs.
    $args['tenant_id'] = get_user_meta( $subscription->get_customer_id(), 'tenant_id', true );
    return $args;
}, 10, 3 );

advanced_subscriptions_woocommerce_scheduled_action_priority

Filter

Desde: 2.0.0 Archivo: scheduler-api/core/class-aswc-scheduler-core.php

Filters the priority at which a scheduled action is registered with Action Scheduler. Defaults to the value of the WP option advanced_subscriptions_woocommerce_scheduler_action_priority (or the class constant ACTION_PRIORITY if unset). Lower numbers fire earlier within the same timestamp.

ParámetroTipoDescripción
`$priority`intDefault priority.
`$action_hook`stringThe hook being scheduled.

Devuelve: int.

advanced_subscriptions_woocommerce_last_order

Filter

Desde: 2.0.0 Archivo: includes/class-aswc-subscription.php

Filters the resolved last order for a subscription. Depending on the $return_fields requested, it can be either a WC_Order object or an order ID. Returns false if no last order is found or if it has an excluded status.

ParámetroTipoDescripción
`$last_order``WC_Order\int\
`$subscription`ASWC_SubscriptionThe subscription doing the lookup.

Devuelve: WC_Order|int|false.