Skip to content

SwftDrops

Timed product drops for WooCommerce. Schedule a product release with a countdown, control access via waitlist or exclusive link, and route buyers straight to Swft Checkout when the drop goes live.

  • Schedule a drop date and time per product
  • Show a countdown timer on the product page before the drop
  • Optional waitlist — customers register their email, receive a notification when the drop goes live
  • Optional exclusive link — only customers with the link can add to cart
  • Integrates with Swft Checkout: the checkout redirect happens immediately so buyers land on a pre-loaded checkout page, not a loading spinner
  1. Download swft-drops.zip from swft.co.uk/modules
  2. Install and activate
  3. Go to WooCommerce → Settings → SwftDrops to configure global settings
SettingOptionDefault
Countdown styleswft_drops_countdown_styleclock (clock or text)
Waitlist enabledswft_drops_waitlist_enabledyes
Waitlist email subjectswft_drops_waitlist_email_subjectYour drop is live!

Edit any product and find the SwftDrops panel in the product data tabs:

FieldKeyDescription
Drop date/time_swft_drop_datetimeUTC datetime string
Exclusive link token_swft_drop_tokenRandom token appended to product URL for access control
Notify waitlist_swft_drop_notify_waitlistWhether to email the waitlist when the drop opens

SwftDrops adds the following to extensions.drops in the session when the cart contains a drop product:

{
"drop_id": 1042,
"product_id": 456,
"drop_name": "Summer Drop 01",
"dropped_at": "2026-06-01T12:00:00Z"
}

Available in the checkout frontend via:

window.SwftCheckout.getExtension('drops')
Meta keyValue
_swft_ext_dropsFull drop data as JSON
_swft_drop_idDrop ID for easy querying

SwftDrops fires one additional event on the product page (not in the checkout):

document.addEventListener('swftdrops:live', (e) => {
console.log(`Drop ${e.detail.dropId} is now live`)
// e.detail: { dropId: number, productId: number }
})

This fires when the countdown reaches zero and the product becomes purchasable.

// Modify the extension data
add_filter( 'swft_drops_extension_data', function( array $data, int $product_id ): array {
return $data;
}, 10, 2 );
// Fire after a drop goes live (useful for sending waitlist notifications)
add_action( 'swft_drops_went_live', function( int $drop_id, int $product_id ): void {
// e.g. send push notifications
}, 10, 2 );
// Filter the waitlist notification email
add_filter( 'swft_drops_waitlist_email', function( array $email, int $drop_id ): array {
return $email;
}, 10, 2 );