Skip to content

Events

Events are the core concept in this plugin. Each event maps a WooCommerce/WordPress action to a Klaviyo metric or profile update.

Supported events

Order events

Event class Klaviyo metric
OrderPlacedEvent Placed Order
OrderRefundedEvent Refunded Order
OrderReturnFlow Return Flow

Subscription events

Event class Klaviyo metric
SubscriptionCreatedEvent Subscription Created
SubscriptionActivatedEvent Subscription Activated
SubscriptionCancelledEvent Subscription Cancelled
SubscriptionPausedEvent Subscription Paused
SubscriptionPauseExtendedEvent Subscription Pause Extended
SubscriptionPendingCancelEvent Subscription Pending Cancel
SubscriptionStopFlowEvent Stop Flow
SubscriptionOffboardingDiscountAdded Offboarding Discount Added
SubscriptionTmpOnholdEndingNotificationEvent Onhold Ending Notification
SubscriptionUpdatedIdentify Profile identify (subscription data)

User / account events

Event class Klaviyo metric
AccountCreatedEvent Account Created
UserUpdatedIdentify Profile identify (user data)
UserRequestResetPasswordEvent User Request Reset Password

DAO / logistics

Event class Klaviyo metric
DaoReturnLabelCreated Return Label Created

Event registry

All events are registered via EventRegistry (inc/Events/EventRegistry.php). New events must be added there to be schedulable.

Adding a custom event

  1. Create a class in inc/Events/Events/ that extends BaseEvent (or BaseOrderEvent / BaseSubscriptionEvent).
  2. Implement EventInterface.
  3. Register it in EventRegistry.
  4. Add a watcher in inc/Watchers/ that calls EventSchedulerAPI::schedule() on the relevant WC/WP hook.

Forced events

By default, the UNIQUE KEY (event_code, entity_id) prevents the same event from being queued twice for the same entity. Set $scheduledEvent->set_forced(true) to bypass deduplication — the existing row is deleted and replaced. This is useful for recurring status changes (e.g. chargebacks).