

The "Notify me when available" form on an out-of-stock product page.
Australcode Back In Stock is a back in stock notifier and waitlist for WooCommerce that turns out-of-stock products into recovered sales. It is privacy-first (double opt-in and explicit consent built in), sends through Action Scheduler so big waiting lists never time out, and keeps every core feature free (Pro adds restock coupons, recovered-revenue tracking, SMS/WhatsApp alerts, Klaviyo & Mailchimp sync and webhooks). When a product is sold out, a “Notify me when available” form appears on the product page. Customers leave their email, and the moment you restock they get an automatic email with a link straight to it.
No more lost sales because a customer couldn’t be bothered to check back.
mode="product" for popups and modals (Elementor, Divi).acbis_after_subscribe, acbis_email_args) plus an acbis:subscribed JavaScript event, to wire signups into your CRM, analytics or email tool.The plugin sends restock emails through your own site (wp_mail / your SMTP). The free plugin never sends your subscribers’ data to any third-party service: emails are stored in your own database, and the IP used for anti-abuse rate limiting is stored hashed, never in clear text. Two optional integrations are off by default: the Pro SMS/WhatsApp feature sends the phone number you collect — with the customer’s separate consent — to Twilio to deliver the message, and Freemius handles licensing and updates. Both are described under “External services” below.
Australcode Back In Stock uses Freemius as its billing and licensing platform (Freemius is the Merchant of Record for Pro purchases). Connecting to Freemius is optional: on activation you can click “Skip” and the plugin stays fully functional without ever contacting Freemius.
api.freemius.com, path /v1/) to create your account and check for updates.freemius.com, users.freemius.com).Apart from the support form, no data is sent to Freemius if you skip the opt-in and do not enter a license key.
The Pro “SMS & WhatsApp alerts” feature is off by default and only works if you enable it and enter your own Twilio credentials. When a subscriber has given phone consent and a product is restocked, the plugin sends the subscriber’s phone number and the message text to the Twilio API (host api.twilio.com, path /2010-04-01/) so Twilio delivers the SMS/WhatsApp. Your Twilio Account SID and Auth Token are stored encrypted in your database and used only to authenticate these requests. No data is sent to Twilio unless you enable a channel and configure credentials.
The Pro “Email marketing sync” feature is off by default and only works if you enable a provider and enter your own API key. When a customer subscribes to a back-in-stock alert, the plugin sends their email address to the provider you enabled — Klaviyo (host a.klaviyo.com) or Mailchimp (host <dc>.api.mailchimp.com) — to add them to the list/audience you choose. Your API key is stored encrypted in your database and used only to authenticate these requests. No data is sent unless you enable a provider and configure it.
The Pro “Webhooks & demand alerts” feature is off by default and only sends data to URLs you configure — it is not tied to any service we operate. When you set a webhook URL, the plugin POSTs a small JSON payload (event type, customer email, product ID and name, timestamp) to that URL on each signup and restock, signed with an HMAC-SHA256 X-Acbis-Signature header so your endpoint can verify it. When you set a Slack or Discord incoming-webhook URL and a demand threshold, it POSTs a short text message to that URL when a product reaches the threshold. The destinations are entirely yours (for example Zapier, Make, n8n, Slack or Discord); review the terms and privacy policy of whichever service you point them at. No data is sent unless you enter a URL.
Filters, to change behaviour or markup:
acbis_should_load_assets( $should_load ) — whether the form’s CSS and JS load on the current page. The plugin only loads them where the form can appear (product pages, or a page containing the block or the shortcode). Page builders that render the form inside a modal or popup keep their content outside post_content, so autodetection misses it — force it with add_filter( 'acbis_should_load_assets', '__return_true' ).acbis_form_html( $html, $product_id, $is_variable ) — the form markup right before it is emitted, for wrappers, tracking attributes or extra copy. Keep the <form class="acbis-form__form"> and its inputs so the JS and the handler keep working.acbis_email_args( $args, $type, $context ) — the arguments handed to wp_mail() (to, subject, message, headers) for both the confirmation and the restock email. $type is 'confirmation' or 'restock', and $context carries the product name and URLs, so you can swap the template or route the message through your own mailer.acbis_restock_coupon( null, $subscription ) — return a coupon array here to attach a discount to the restock email. Returns null by default, which sends the email without one.Actions, for side effects and extra markup:
acbis_after_form( $product, $html ) — fires right after the form is printed on the product page. Unlike the shortcode and the block, which return their HTML, this is the WooCommerce hook adapter and output is printed here, so an echo lands exactly where you expect: inside the product summary, after the form. It fires even when no form was shown (product in stock, or not resolvable) — '' === $html is that case.acbis_form_extra_fields( $product_id ) — inside the form, after the email field. Add your own inputs here; they arrive in $_POST at the subscribe handler.acbis_after_subscribe( $subscription, $outcome ) — after a signup attempt is resolved (new, reactivated, pending confirmation, or already waiting). A post-hoc notification that does not alter the flow: analytics micro-conversions, CRM sync, and similar. $outcome is an enum telling you which of those happened.acbis_restock_notified( $subscription, $context ) — after the restock email has been sent to one subscriber. This is the extension point for extra channels; the core only sends email. $context carries the product name and URL.In the browser:
acbis:subscribed — a JavaScript event dispatched on document after a successful signup, for analytics or tag managers. Full reference with examples in docs/hooks.md.