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.
What it does
Section titled “What it does”- 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
Installation
Section titled “Installation”- Download
swft-drops.zipfrom swft.co.uk/modules - Install and activate
- Go to WooCommerce → Settings → SwftDrops to configure global settings
Configuration
Section titled “Configuration”Global settings
Section titled “Global settings”| Setting | Option | Default |
|---|---|---|
| Countdown style | swft_drops_countdown_style | clock (clock or text) |
| Waitlist enabled | swft_drops_waitlist_enabled | yes |
| Waitlist email subject | swft_drops_waitlist_email_subject | Your drop is live! |
Per-product settings
Section titled “Per-product settings”Edit any product and find the SwftDrops panel in the product data tabs:
| Field | Key | Description |
|---|---|---|
| Drop date/time | _swft_drop_datetime | UTC datetime string |
| Exclusive link token | _swft_drop_token | Random token appended to product URL for access control |
| Notify waitlist | _swft_drop_notify_waitlist | Whether to email the waitlist when the drop opens |
Extension data
Section titled “Extension data”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')Order meta
Section titled “Order meta”| Meta key | Value |
|---|---|
_swft_ext_drops | Full drop data as JSON |
_swft_drop_id | Drop ID for easy querying |
Events fired
Section titled “Events fired”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.
PHP hooks
Section titled “PHP hooks”// Modify the extension dataadd_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 emailadd_filter( 'swft_drops_waitlist_email', function( array $email, int $drop_id ): array { return $email;}, 10, 2 );