Hooks and Filters Reference
2 min read
# Hooks and Filters Reference
This page documents the current public hooks used by Smart Cycle Discounts (`wsscd_` prefix).
## Action Hooks
### Campaign lifecycle
“`php
do_action( ‘wsscd_campaign_created’, WSSCD_Campaign $campaign );
do_action( ‘wsscd_campaign_updated’, WSSCD_Campaign $campaign, string $original_status );
do_action( ‘wsscd_campaign_saved’, int $campaign_id, array $data );
do_action( ‘wsscd_campaign_activated’, WSSCD_Campaign $campaign );
do_action( ‘wsscd_campaign_status_changed’, WSSCD_Campaign $campaign, string $from, string $to );
do_action( ‘wsscd_campaign_deleted’, WSSCD_Campaign $campaign );
do_action( ‘wsscd_campaign_expired’, WSSCD_Campaign $campaign );
“`
### Campaign transitions
“`php
do_action( ‘wsscd_before_campaign_transition’, WSSCD_Campaign $campaign, string $from, string $to, array $context );
do_action( ‘wsscd_after_campaign_transition’, WSSCD_Campaign $campaign, string $from, string $to, array $context );
“`
### Bulk operations
“`php
do_action( ‘wsscd_campaigns_bulk_activated’, array $campaign_ids );
do_action( ‘wsscd_campaigns_bulk_paused’, array $campaign_ids );
do_action( ‘wsscd_campaigns_bulk_deleted’, array $campaign_ids );
“`
### Notifications / licensing
“`php
do_action( ‘wsscd_settings_updated’ );
do_action( ‘wsscd_license_activated’ );
do_action( ‘wsscd_license_deactivated’ );
“`
## Filter Hooks
### Discount evaluation
“`php
apply_filters( ‘wsscd_allowed_product_types’, array $types );
apply_filters( ‘wsscd_is_product_eligible_for_discount’, bool $eligible, WC_Product $product, array $context );
apply_filters( ‘wsscd_is_discount_rule_applicable’, bool $applicable, int $product_id, array $rule, array $context );
“`
### Settings / admin
“`php
apply_filters( ‘wsscd_default_settings’, array $defaults );
apply_filters( ‘wsscd_settings_tabs’, array $tabs );
apply_filters( ‘wsscd_admin_capabilities’, array $capabilities );
“`
### Cache / theming
“`php
apply_filters( ‘wsscd_cache_duration’, int $seconds );
apply_filters( ‘wsscd_reference_cache_duration’, int $seconds );
apply_filters( ‘wsscd_theme_colors’, array $colors, string $admin_color_scheme );
“`
### User targeting
“`php
apply_filters( ‘wsscd_available_user_roles’, array $roles );
apply_filters( ‘wsscd_user_eligible_for_campaign’, bool $eligible, WSSCD_Campaign $campaign, WP_User $user );
“`
## Notes
– Legacy `scd_*` hook names are deprecated and should not be used.
– If you need an exhaustive list, search the codebase for `do_action(` and `apply_filters(` under `includes/`.
Updated on February 17, 2026