tymok Presale Waitlist for WooCommerce

Description

Some products should not simply go to whoever refreshes the page fastest: a limited
drop, a hand-made batch, an advent calendar. This plugin turns those products into a
managed queue.

Switch the waitlist on for a product and nobody can order it any more. The add-to-cart
button is replaced by a sign-up form. When you are ready, you invite people from the
list, one by one or in batches. Each invitation unlocks the product for exactly one
customer account, for a limited quantity and a limited time. After the purchase, or
after the deadline, the right to buy is gone and the next person can move up.

What it does

  • Blocks the product for everyone while the waitlist is running
  • Quota of places per product; the list closes itself when it is full
  • Shows the remaining places, the full ratio, or nothing at all
  • Customers sign up with their shop account (created on the spot if your shop allows registration)
  • Single-use invitation links: one account, a limited quantity, a deadline
  • Expired invitations are released automatically by a scheduled task
  • Admin overview with bulk invitations and CSV export
  • A “My waitlists” section in the customer account
  • Templates and hooks for your own adjustments

Templates and hooks

Copy the templates into your theme under yourtheme/tymok-presale-waitlist-for-woocommerce/
to change the markup. Among the available hooks are wcwl_is_waitlist_product,
wcwl_validate_signup, wcwl_after_signup, wcwl_form_extra_fields,
wcwl_invite_sent, wcwl_invite_redeemed, wcwl_invites_expired and
wcwl_settings_fields.

External services

This plugin does not contact any external service. No data leaves your site.

Privacy

The plugin stores waitlist entries: name, email address, IP address and timestamp.
The IP address serves as proof of the sign-up. Deleting the plugin only removes this
data if you enable the corresponding setting.

Screenshots

Installation

  1. Upload the ZIP under Plugins > Add New > Upload Plugin, then activate it.
  2. Go through WooCommerce > Settings > Waitlist (deadlines, quantity, texts).
  3. Open a product, switch to the Waitlist tab, enable it and set the quota.
  4. Invite customers under WooCommerce > Waitlist.

FAQ

Can customers join without an account?

No. Without a customer account the later purchase cannot be limited to one person.
If your shop allows customers to create an account on the My account page
(WooCommerce > Settings > Accounts & Privacy), the account is created straight from
the sign-up form. Otherwise customers log in first and then join the waitlist.

Does this work with a page cache?

Waitlist product pages set DONOTCACHEPAGE and send no-cache headers. If your cache
plugin ignores that, exclude those URLs there by hand. Otherwise a stale form with an
expired nonce may be served.

Does it work with the block-based cart and checkout?

Yes. The purchase block hooks into woocommerce_is_purchasable, the add-to-cart
validation and the cart check, so the Store API is covered as well.

What happens to an invitation that is not used?

An hourly scheduled task marks it as expired, which frees the place again.

Reviews

There are no reviews for this plugin.

Contributors & Developers

“tymok Presale Waitlist for WooCommerce” is open source software. The following people have contributed to this plugin.

Contributors

Changelog

1.2.1

  • Declares WooCommerce as a required plugin (Requires Plugins header, WordPress 6.5+).
  • Removed the option to log customers in through the invitation link. Invited customers
    always log in through the regular WooCommerce login.
  • The sign-up form reads and sanitizes each field individually; extension hooks only
    receive the sanitized form fields, never the nonce or the password.
  • Removed the unused AJAX sign-up endpoint.
  • Guests only get a customer account through the waitlist form if the shop allows
    account creation on the My account page (WooCommerce setting). Otherwise the form
    asks them to log in first. Filter: wcwl_guests_can_register.

1.2.0

  • Renamed the plugin to tymok Presale Waitlist for WooCommerce.
  • The shortcode is now [tymok_waitlist].

1.1.0

  • Sign-ups are now matched against the normalised mailbox, so plus tags and Gmail dots
    count as one and the same address.
  • Removed helper methods that were not called anywhere in this plugin.

1.0.2

  • First public release.