Overview
Bundle Add-ons is one plugin that holds every add-on for Back In Stock Notifier for WooCommerce. You install this single plugin instead of each add-on separately. Then you switch each add-on on or off under Instock Notifier > Add-ons. Switching an add-on off keeps its settings and its data, so you can turn it back on later exactly where you left it.
The add-ons cover several areas:
- Reaching customers: Restock Reminders and Twilio SMS and WhatsApp
- Marketing platform sync: ActiveCampaign, Brevo, Constant Contact, Klaviyo, Mailchimp, MailerLite and Omnisend
- Measurement: Track Sales and Waitlist Analytics
- Running the waitlist: Team Alerts and Waitlist Priority
- Consent: Double Opt-In and Unsubscribe
- Subscriber management: Edit Subscribers, Never Restock, Export CSV and Import CSV
- Storefront: Custom CSS and Demand Signals
- Multilingual: Polylang, TranslatePress, Weglot and WPML
- List quality: Ban Emails
This bundle is for stores that already run Back In Stock Notifier and want more from their waitlist. Each add-on with settings gets its own tab under Instock Notifier > Settings. Instock Notifier > Help has setup notes and live status checks for every add-on.
Requirements
- WordPress 5.8 or later (tested up to 6.8)
- PHP 7.2 or later
- Back In Stock Notifier for WooCommerce, installed and active
- For the marketing, SMS and chat add-ons: an account with that service (for example Mailchimp, Klaviyo, Twilio or Slack)
- For the multilingual add-ons: the matching translation plugin (Polylang, TranslatePress, Weglot or WPML)
Installation
Bundle Add-ons runs on top of Back In Stock Notifier for WooCommerce, so install and activate that plugin first. You download the bundle as a zip file from your ProPluginsLab account. If you already have individual add-on plugins installed, deactivate them after activating the bundle and manage everything from the bundle instead.
Make sure Back In Stock Notifier for WooCommerce is installed and active.
Sign in to your ProPluginsLab account, open My Account > Downloads and download the Bundle Add-ons zip file.
In WordPress, go to Plugins > Add New > Upload Plugin, choose the zip file and click Install Now.
Click Activate Plugin.
Go to Instock Notifier > Add-ons and switch on the add-ons you need.
License and automatic updates
Bundle Add-ons works fully as soon as it is activated. The license key turns on automatic updates, so new versions arrive in WordPress like any other plugin update. Pro features never depend on it.
Activate your license
Find your license key in My Account on propluginslab.io, in the license keys section. It is also in your order confirmation email.
In WordPress, open Instock Notifier > License. When two or more ProPluginsLab plugins or add-ons are active on the site, WooCommerce > Licenses also appears and lists all of them in one place.
Paste the key into the Bundle Add-ons - Back In Stock Notifier for WooCommerce row and click Activate. The status changes to Active and automatic updates are on.
Receive updates automatically
Once the license is active, new versions of Bundle Add-ons show up under Dashboard > Updates and on the Plugins screen. Click Update now, or click Enable auto-updates in the Bundle Add-ons row on the Plugins screen and WordPress installs every future release for you.
Good to know
- Keys are checked once a day in the background, so your site never waits for the license server. If the server is briefly unreachable, the plugin keeps its last known status.
- An expired key or a key that is not accepted only stops updates. Bundle Add-ons keeps working. After renewing, click Check now in its row.
- Moving to a new domain: click Deactivate on the old site first, then activate the key on the new one. The status shows Site address changed, checking until the new address is confirmed.
- On the command line:
wp ppl-license list,wp ppl-license activate <plugin> <key>,wp ppl-license checkandwp ppl-license deactivate <plugin>.
Quick start
- Choose your add-ons
Open Instock Notifier > Add-ons. The add-ons are grouped by purpose, for example Marketing platforms or Consent and compliance. Click Switch on or Switch off next to each one. To change several at once, tick their checkboxes and use Bulk actions with Apply.
- Open an add-on's settings
Click the Settings link under an add-on, or go to Instock Notifier > Settings and open its tab (for example Mailchimp or Restock Reminders). Each tab starts with a short setup guide and a list of the placeholders you can use.
- Connect a marketing platform
On a platform tab such as Mailchimp, paste your API key and click Save Changes. Then click Fetch lists and pick a Target list. Turn on Enable sync last. Existing subscribers are then sent across in the background.
- Protect and grow your list
Check the Blocked Emails tab so disposable addresses stay off your waitlist. On the Unsubscribe tab, pick your unsubscribe page. If you need confirmed consent, turn on Require confirmation on the Double Opt-In tab.
- Check that everything works
Open Instock Notifier > Help. The System status table and each add-on's panel show live checks, such as whether credentials are present and whether background jobs are scheduled.
Add-ons in this bundle
#Switching add-ons on and off
Manage the bundle from Instock Notifier > Add-ons. The screen groups the add-ons by purpose: Reaching customers, Marketing platforms, Measurement, Running the waitlist, Consent and compliance, Managing subscribers, Import and export, Storefront, Multilingual and List quality.
Each row shows the add-on's name, its version, a short description and a status dot. Each row also has links to its Documentation and Settings.
- Click Switch on or Switch off to change a single add-on.
- To change several at once, tick their checkboxes, choose an action from Bulk actions and click Apply.
Switching an add-on off leaves its settings and data alone, so you can turn it back on later exactly where you left it. When the bundle itself is deactivated, it still remembers which add-ons you had switched on.
Once switched on, an add-on with settings gets its own tab under Instock Notifier > Settings. Some add-ons also add their own menu items, such as Import CSV, Analytics or Never Restock.
#Restock Reminders
Restock Reminders follows up with people who were told a product is back but have not bought it yet, while it is still in stock. You can send up to two reminders.
To set it up, open Instock Notifier > Settings > Restock Reminders:
- Tick First reminder and set First reminder delay in hours after the alert. Twenty four hours suits most stores. Go shorter for fast-moving lines.
- Write the subject and message. Use
{cart_link}rather than the product link, because these people have already decided. - To send one final reminder, tick Second reminder. Its delay is measured from the original alert, not from the first reminder, so set it comfortably later.
- If you want, set Stop below this stock level so reminders stop once only a few units remain. Zero means keep reminding while anything is in stock. This only applies to products with stock management enabled.
Placeholders: {product_name}, {cart_link}, {product_price}, {stock_left} and {subscriber_firstname}.
Each reminder is checked again just before it goes out. It is skipped, and not retried, in any of these cases:
- the subscriber bought
- the subscriber unsubscribed
- the product sold out again or fell to your stock floor
The Reminders column in the subscribers list shows who has received what.
Switch on Track Sales as well. Without it, there is no way to know that a subscriber already bought.
#Twilio SMS and WhatsApp
This add-on sends restock alerts by SMS, WhatsApp or both to subscribers who gave a phone number. Its settings are on the SMS and WhatsApp tab.
- Turn on the phone field on the Visibility Settings tab. Otherwise nobody has a number to message.
- Paste your Account SID and Auth Token from the Twilio console and save. Then use Send a test message to check them. The test uses the saved credentials and costs one message.
- Pick your Channels:
SMS only,WhatsApp only, orWhatsApp first, SMS if that fails. - For SMS, enter an SMS From number in international format. A Messaging Service SID is the better option: when you set one, it is used instead of the From number.
- For WhatsApp, connect a WhatsApp sender in Twilio. Create a content template for restock alerts and wait for Meta to approve it. Then paste its WhatsApp Content SID. Variables 1 to 3 are filled with the product name, the price and the add to cart link. Enter the WhatsApp From number without the
whatsapp:prefix. - If you want delivery results, paste the URL shown under Delivery receipts into your Twilio Messaging Service as the Delivery Status Callback. Results then appear in the subscribers list.
Keep the Restock message under 160 characters so it fits in one SMS segment. Signup confirmation texts people when they join a waitlist. It is off by default because it doubles your message spend. Country rules limits sending to the dialling codes you list.
Messages are queued, never sent inline. WhatsApp free text only works inside the twenty four hour service window. Outside it, Meta rejects the message and Twilio still charges for the failed attempt.
#ActiveCampaign
This add-on syncs waitlist subscribers into ActiveCampaign as contacts on a list you choose. Each contact is tagged with the product it is waiting for, so you can build automations on those tags.
- In ActiveCampaign, open Settings and then Developer. Copy the account URL into Account URL, with no trailing slash and no
/api/3on the end. Copy the key into API key and click Save Changes. - Click Fetch lists, then pick the Target list.
- Adjust Tags if you want. Placeholders such as
{only_product_name}and{product_id}are filled in per subscriber. - Turn on Enable sync. Existing subscribers are backfilled in the background.
Tags that do not exist yet in ActiveCampaign are created automatically. With Mirror unsubscribes on, someone who leaves the waitlist is marked unsubscribed on that list. The contact is not deleted and your other lists are untouched. Catch-up sync retries failed rows every five minutes, up to 25 subscribers per run.
If you get a 403 error when fetching lists, the account URL is almost always the cause.
#Brevo
This add-on syncs waitlist subscribers into a Brevo list, with the product they want stored as contact attributes. It can also have Brevo send the restock alert from one of your transactional templates.
- Create a v3 API key in Brevo under SMTP and API and then API keys. It starts with
xkeysib. Paste it into API key and save. - Click Fetch lists and pick the Target list.
- Turn on Enable sync.
To let Brevo send the alert itself:
- Build a transactional template in Brevo and note its numeric ID.
- Enter the ID in Restock template ID.
- Turn on Send events.
- Turn on Replace the built-in email. Without it, customers get two emails about the same restock.
In the Brevo template, use the parameters PRODUCT_NAME, PRODUCT_URL, CART_URL, PRODUCT_PRICE, PRODUCT_IMAGE and FIRSTNAME. In Brevo's syntax you reference them as {{ params.PRODUCT_NAME }}. The names must match exactly, in capitals.
#Constant Contact
This add-on syncs waitlist subscribers into a Constant Contact list. Constant Contact uses OAuth rather than a plain API key, so you register an app and then authorise your store once. After that, tokens are refreshed automatically.
- Sign in at developer.constantcontact.com and create an app of the "Authorization Code Flow" type.
- Copy the redirect URI shown in the Connection row into your app's Redirect URI list. It must match exactly, including https.
- Paste the app's API key (Constant Contact calls it the client ID) and App secret, then save.
- Click Connect to Constant Contact, approve access, and you are returned to your site.
- Click Fetch lists, pick a Target list, and turn on Enable sync.
Constant Contact has no tags. The product a person is waiting for is recorded as a note on the contact instead. When someone leaves the waitlist, the contact is removed from the selected list, but the contact record is kept.
#Klaviyo
This add-on syncs waitlist subscribers into Klaviyo with the product they want as profile properties. It also fires two metric events, Back In Stock Subscribed and Back In Stock Available, which Klaviyo flows can trigger on.
- In Klaviyo, create a private API key with full access under Settings and then API keys. Paste it into Private API key and save.
- Click Fetch lists and choose the Target list.
- Turn on Enable sync and Send events.
- Click Create templates and flows in Klaviyo. This creates two email templates and two flows. Running it again updates what is already there rather than making duplicates. Open the flows in Klaviyo, check the sender name and address, and send yourself a test.
- Once the flows work, turn on Let Klaviyo send the email. This stops the WooCommerce restock and subscription emails.
These event properties are available in your templates: event.product_title, event.product_url, event.cart_url, event.product_image and event.product_price.
A metric only exists in Klaviyo after it has been received once. If the setup reports that Klaviyo does not know the metric yet, do this:
- Subscribe a test address with events on.
- Run a restock.
- Run the setup again.
#Mailchimp
This add-on adds everyone who joins a waitlist to a Mailchimp audience, tagged with the product they are waiting for. You can then build a segment such as "everyone waiting for this product" and mail those people directly.
- Create an API key in Mailchimp under Account and then Extras and then API keys. Paste it into API key and save. The part after the dash is your data centre and is read automatically.
- Click Fetch lists to load your audiences and pick the Target list.
- Adjust Tags if you want. The default writes one general tag plus one tag per product.
- Turn on Enable sync last. Existing subscribers are backfilled in the background over the next few minutes.
By default, contacts are subscribed straight away. Turn on Mailchimp confirmation if you want Mailchimp to email them a confirmation first. They receive nothing until they click it.
First and last names go into FNAME and LNAME, and PHONE is filled if your audience has that field. Contacts who unsubscribed from or were deleted in Mailchimp cannot be re-added by API. That is Mailchimp policy.
#MailerLite
This add-on adds waitlist subscribers to a MailerLite group. The product they are waiting for is stored in custom fields, which you can use for segments and automation triggers.
- In MailerLite, go to Integrations and then MailerLite API and generate a token with read and write access to subscribers and groups. Paste it into API token and save.
- Click Fetch lists to load your groups, then choose one as the Target list.
- Turn on Enable sync. The custom fields are created on your account automatically before the first sync.
- In MailerLite, build an automation triggered by "joins a group" on that group.
The add-on creates these custom fields: bis_product, bis_product_id, bis_product_sku, bis_product_url and bis_tags. MailerLite holds one contact per email address, so the product fields reflect the most recent waitlist the person joined. bis_tags builds up the full set.
Leave Subscriber status off if you already confirm consent on your site, for example with Double Opt-In. Turning both on asks people to confirm twice.
#Omnisend
This add-on syncs waitlist subscribers into Omnisend as tagged contacts. It also fires two custom events, back_in_stock_subscribed and back_in_stock_available, so an Omnisend automation can send the whole alert. Omnisend segments on tags and events rather than lists, so there is no list to choose.
- Create an API key in Omnisend under Store settings and then Integrations and API and then API keys. Paste it into API key and save.
- Turn on Enable sync.
- If you want Omnisend to send the alert, turn on Send events. Then create an automation in Omnisend with a Custom event trigger and pick
back_in_stock_available. - In the automation, use the event properties
productName,productUrl,cartUrl,productImageandproductPrice.
Email channel opts contacts into marketing email. Turn it off to add contacts without opting them in. SMS channel also subscribes the phone number to SMS. Only use it if your form makes clear that giving a number means agreeing to texts. A contact who already unsubscribed in Omnisend is never flipped back to subscribed.
If Omnisend sends the alert, turn off the built-in notification under WooCommerce > Settings > Emails so customers do not receive both.
#Track Sales
Track Sales links orders back to the restock email that produced them. Every add to cart link in a back in stock email is signed with the subscriber it was sent to. When an order from that link reaches a paid status, the subscriber is marked Purchased and the order and revenue are recorded.
Settings are on the Sales Attribution tab.
- Make sure your back in stock email uses the
{cart_link}placeholder. That is the link this add-on signs. A plain{product_link}is still matched later by email address, but only the signed link gives same-session attribution. - Leave Reconcile by email on. It catches customers who got the email, browsed away and came back later without the link.
- Set the Attribution window in days. It only applies to email matching. Signed links are always attributed.
- Leave Revenue on to record the line total of the subscribed product against each converted subscriber.
Converted subscribers show a Purchased status, and the Order and Revenue columns are filled in the subscribers list. Orders from a signed link are attributed immediately. Orders matched by email are picked up by a background job that runs every fifteen minutes.
Waitlist Analytics and Restock Reminders both rely on this add-on for conversion and purchase data.
#Waitlist Analytics
Waitlist Analytics turns the waitlist into reports. Open Instock Notifier > Analytics, choose a Period and click Apply.
At the top are summary cards:
- People waiting now
- Signups in period
- Notified in period
- Converted
- Attributed revenue
Below them:
- Signups and notifications over time: a chart of signups against restock alerts sent.
- Where everyone stands: every waitlist entry by status.
- Unmet demand: products with people waiting, ranked by count, with Waiting, Oldest signup, Stock and Potential value. Start here. It is the closest thing to a purchase order this data can give you.
- Notification performance: Notified, Purchased, Conversion and Revenue per product.
Use Export this table to CSV under a table to download it. The export contains product names and counts, not subscriber addresses.
Figures are cached for fifteen minutes. Click Refresh figures to recompute now. Conversion and revenue need the Track Sales add-on.
The Waitlist Analytics settings tab only controls the default period, the dashboard widget and how many rows each table shows.
#Team Alerts
Team Alerts posts waitlist signals to a chat channel your team already uses.
- Create an incoming webhook for the channel:
- Slack: create an Incoming Webhook.
- Discord: use Channel settings and then Integrations and then Webhooks.
- Microsoft Teams: add an Incoming Webhook connector.
- Paste the URL into Webhook URL and choose the matching Destination:
Slack,Discord,Microsoft TeamsorPlain JSON webhook. Message formats differ, so this must match. - Save, then click Send a test message. The test uses the saved URL and destination.
- Set the alerts you want. Start with Demand threshold.
The Demand threshold alert fires when a product passes that many waiting subscribers, and again at each multiple of it. Zero turns it off. Restock summaries are batched over a few minutes, so a popular restock produces one message instead of one per subscriber. Daily digest posts yesterday's signups, notifications and top demand. Mention on threshold alerts adds something like <!here> in Slack or @here in Discord.
Alerts carry product names, counts and potential values only. No email addresses or phone numbers are sent. The webhook URL is encrypted at rest and shown masked.
#Waitlist Priority
Waitlist Priority decides who hears first when stock is limited, and how many people hear at a time.
Under Notify in this order, choose one of these:
First come, first served(the default, and the one to keep unless you run a VIP tier)Highest lifetime spend firstPriority customer roles first, then signup orderRegistered customers first, then guests
For role ordering, list role slugs in Priority roles, highest first, for example vip_customer, wholesale.
Turn on Wave release if your restocks are often smaller than your waitlists. Then set these:
- People per unit of stock: how many subscribers to notify per available unit. Three is a sensible start.
- Gap between waves: minutes between waves. Under fifteen minutes there is little point having waves.
- Maximum waves
- Stop at this stock level: hold back a few units, for example for walk-in or wholesale.
Stock is re-read before every wave. Once the product sells out, the remaining waves are cancelled and those subscribers stay on the waitlist for the next restock. Wave sizing needs a stock number. For products without stock management, the add-on paces sending with a fixed wave size instead. Spend ordering computes a score per customer the first time, which takes a moment on a large waitlist.
#Double Opt-In
With Double Opt-In on, joining a waitlist sends a confirmation email first. The entry stays at Awaiting confirmation until the link is clicked. Only then does it become active and count towards your subscriber numbers.
- On the Double Opt-In tab, tick Require confirmation.
- Make sure Confirmation message contains
{doubleoptin_verify_link}, usually inside a link or button. Without it, nobody can confirm. - Edit the on-screen messages for after signing up, a pending confirmation, after confirming, and an expired link.
- Set Delete unconfirmed entries after in days. Older unconfirmed entries are deleted automatically.
Placeholders: {doubleoptin_verify_link}, {product_name}, {subscriber_name} and {shopname}.
Unconfirmed entries appear under the Awaiting confirmation filter in the subscribers list. You can resend the email there, row by row. With Consent evidence on, the add-on stores the confirmation time, the originating page and a salted hash of the IP address. The raw IP is never kept.
Confirmation only applies to new signups. People already on a waitlist stay active.
#Unsubscribe
The Unsubscribe add-on gives people three ways to leave a waitlist:
- a signed one-click link in your emails
- the mailbox Unsubscribe button in Gmail and Yahoo
- a Subscribed List tab in My Account
- On the Unsubscribe tab, choose your Unsubscribe page. A page is created for you the first time the add-on is switched on. It must contain the
[cwginstocknotifier_unsubscribe]shortcode. The tab shows Ready with a View page link when the page is set up. - Add
{cwginstock_unsubscribe}to your subscription and back in stock email templates, usually in an "unsubscribe" link at the foot of the message. Use{cwginstock_unsubscribe_all}for a link that removes the person from every waitlist. - Leave Mailbox unsubscribe button on. It sends the List-Unsubscribe and List-Unsubscribe-Post headers. Turning it off makes it more likely your notifications land in spam.
- If you change My Account endpoint, save your permalinks once afterwards so the new URL works.
You can also edit these:
- the confirmation, already-unsubscribed and invalid-link messages
- the My Account tab label and heading, and the link text
- whether the Subscribed List shows thumbnails, hides SKUs, or shows how many people are waiting for each product
#Edit Subscribers
With Edit Subscribers on, every row in Instock Notifier > All Subscribers gains an Edit link, and Add New Subscriber appears in the menu. Use it to fix a mistyped address, move someone to a different variation, or add a customer who asked to be notified by phone.
- Go to Instock Notifier > All Subscribers, hover over a row and click Edit.
- You can change the email, name, phone, product, quantity or status. The product field searches your catalogue, including variations, so you do not need to know the ID.
- Setting someone back to Subscribed makes them eligible for the next restock notification.
Edits are silent. No email is sent because of an edit. Only users who can manage WooCommerce can edit subscribers.
On the Editing Subscribers tab, Change history records which fields changed, when and by whom. The latest entries show under the edit form. Leave Duplicates off, because the same address on the same product twice means duplicate notification emails.
The subscribers list also shows columns added by other add-ons, such as Reminders, Confirmed, the sync status for each marketing platform, Order and Revenue.
#Never Restock
Never Restock is for products that are gone for good. You map a discontinued product to one or more replacements. When a replacement comes into stock, everyone on the discontinued product's waitlist is emailed about it instead.
- On the Never Restock tab, tick Enable and save. A Never Restock item appears in the Instock Notifier menu.
- There, add a rule: pick the discontinued product, then one or more replacements.
- Write the Email subject and Email message. Be honest that the original is discontinued.
- Lower Emails per batch if your mail provider rate limits you.
Placeholders:
{replacement_product},{replacement_product_link},{replacement_product_add_to_cart}and{replacement_product_price}{product_name}(the original product){subscriber_name}and{shopname}
Rule priority decides what happens when one replacement is named in several rules. Apply every matching rule can mean several emails to the same person.
Stock is checked again before each batch is sent. Each subscriber is told once per replacement and is then marked Notified.
#Export CSV
Export CSV downloads your subscriber list as a CSV file.
- Go to Instock Notifier > All Subscribers.
- Click Export CSV above the list.
- Tick the columns you want and, if you like, narrow the export by status, product or date. The file downloads straight away.
The file is UTF-8 with a byte order mark, so Excel shows accented names correctly. Any value starting with =, +, - or @ gets an apostrophe in front so spreadsheets treat it as text. Rows are fetched in batches, so large waitlists do not run out of memory.
On the CSV Export tab you can change two things:
- Category columns: how many category columns the file gets, so every row lines up.
- Delimiter:
Comma,SemicolonorTab. Semicolon suits regional Excel builds where comma is the decimal separator.
Only users who can manage WooCommerce can export. The file can contain personal data, so treat it with care.
#Import CSV
Import CSV brings waitlist subscribers in from another platform or a backup. Open Instock Notifier > Import CSV.
- Prepare a CSV file with a header row. You need an Email column plus either Product ID or Product SKU. Everything else is optional. The screen has a Download a sample file link.
- Choose the file and click Upload and read columns. The maximum size is 20 MB, so split larger lists into several files.
- Map each column to a field. Match products by ID if you have it, or by SKU when the data came from another store.
- Review the preview of the first few rows, then start the import. It runs in chunks with a progress bar, and you can close it and resume.
Rows whose email and product are already on the waitlist are skipped and counted as duplicates. Your Ban Emails block list applies to imports too. Use dates in the format YYYY-MM-DD or YYYY-MM-DD HH:MM:SS. The uploaded file is deleted when the import finishes.
On the CSV Import tab:
- Status for rows with no status column sets the status for rows that have none.
- Run integrations on import is off by default, so imported rows are not pushed to your marketing platform and do not trigger confirmations.
- Leave Unknown products on to skip rows whose product does not exist in your store.
#Custom CSS
Custom CSS restyles the front-end subscribe form, button and popup without editing theme files. Its settings are on the Subscribe Form Styling tab.
- Pick the layout first. Use Subscribe Form Design on the Frontend Form tab (and the popup design if you use the pop-up form). This tab then recolours whichever design you chose.
- Set the sizes and colours you want and save. Leave a field empty to keep your theme's styling.
- View an out of stock product to check the result. If you use a page cache, purge it once after saving.
- For anything the fields do not cover, use the Custom CSS box at the bottom. It is output after every other rule, so it always wins. Tags and scripts are stripped on save.
The tab covers these areas:
- form width on desktop and mobile (mobile applies below 768px)
- heading, button, form panel and input styling
- popup backdrop, background, corner radius and maximum width
- popup button, success and error message colours
- the guest notice
Colour fields use Select Color pickers. The mobile width is written as a media query, so it works behind page caching.
#Demand Signals
Demand Signals shows how many people are already waiting for an out of stock product. It can also tell a new subscriber their place in the queue.
- On the Demand Signals tab, set Minimum before showing. Below this number, nothing is shown. The add-on's own guidance suggests ten as a reasonable floor.
- Choose Where to show it:
Above the subscribe form, outside the boxInside the form, above the fieldsBelow the subscribe buttonInside the form heading barOnly where I place the shortcode
- Edit the Message. Use
{count}for the number. - If you want, tick Queue position and edit the Queue position message, using
{position}. It is shown straight after someone subscribes. - If you want, tick Shop and category pages to show a short badge on product listings, and choose the Appearance.
The Showing right now panel tells you how many products or variations are at or above your minimum. Variations are counted separately from their parent product.
To place the count anywhere else, use the [bis_demand_count] shortcode. Only real counts are shown, and there is no setting to inflate them. When you switch the add-on on, counts are rebuilt from the existing waitlist.
#Polylang
The Polylang add-on records the language each person subscribed in. It treats every translation of a product as one waitlist and sends each notification in the subscriber's own language.
- Go to Languages > String translations and filter by the group "Back In Stock Notifier". Translate the email subject, heading and body for each language you sell in.
- Check the translation status table in the add-on's settings. A cross means that language will get the original text.
- Leave "Treat translations as one waitlist" on, unless each translation of a product really has its own stock.
- Test by subscribing on a translated product page and then restocking.
You edit the original email text under WooCommerce > Settings > Emails, on the Back In Stock emails. Editing it registers a new string, so check the status table again afterwards. If the strings are not listed yet, open WooCommerce > Settings > Emails once and look again.
A fallback language code covers subscribers with no recorded language, such as imported rows. Leave it empty to use the site default. Do not run this add-on together with the WPML add-on.
#TranslatePress
The TranslatePress add-on records the language a person was browsing in when they subscribed. It then sends their restock notification in that language.
TranslatePress translates rendered pages, and an email is never rendered as a page. So you write the email text in the add-on's settings instead of the TranslatePress editor.
- Write the email subject, heading and body for each language in the add-on's fields. There is one set per language configured in TranslatePress.
- Check the translation status table. A cross means that language will receive the original text, never a blank email.
- Test by switching the shop to another language, subscribing on an out of stock product, and restocking it.
TranslatePress does not duplicate products, so each product already has one waitlist and no shared waitlist setting is needed. Set a fallback language code for subscribers with no recorded language, for example rows imported from elsewhere.
#Weglot
The Weglot add-on records the language a person was browsing in when they subscribed. It then sends their restock notification in that language.
Weglot translates pages as they are served, and emails never pass through it. Without this add-on, every notification goes out in your original language.
- Write the email subject, heading and body for each language in the add-on's fields. There is one set per destination language configured in Weglot.
- Install the WordPress language pack for each language under Settings > General, so the surrounding email template is translated too.
- Check the translation status table. A cross means that language will receive the original text.
- Test by switching the shop to another language, subscribing on an out of stock product, and restocking it.
The email text is stored on your site and never sent to Weglot, so it does not use your Weglot word quota. Each product has one waitlist, so no shared waitlist setting is needed. Set a fallback language code for subscribers with no recorded language.
#WPML
The WPML add-on records the language each person subscribed in. It treats every translation of a product as one waitlist and sends each notification in the subscriber's own language.
- Go to WPML > String Translation and filter by the domain "Back In Stock Notifier". Translate the email subject, heading and body for each language you sell in.
- Check the translation status table in the add-on's settings. A cross means that language will receive the original text.
- Leave "Treat translations as one waitlist" on, unless each translation of a product really has its own stock. Without it, a restock on the original product does not reach people who signed up on a translation.
- Test by subscribing on a translated product page and then restocking. The email should arrive translated, with a link to the translated product.
The original email text is under WooCommerce > Settings > Emails, on the Back In Stock emails. Editing it creates a new string, so check the status table again afterwards. Set a fallback language code for subscribers with no recorded language. Do not run this add-on together with the Polylang add-on.
#Ban Emails
Ban Emails keeps junk addresses off your waitlist. Every rule runs before a subscription is stored, so a blocked address never appears in your subscriber list. The settings are on the Blocked Emails tab.
- Leave Disposable providers on. It uses a list of throwaway mail domains that ships with the add-on and updates with it. Click Show the full list to see it.
- If you want, tick Role accounts to block shared mailboxes such as
info@,admin@andsales@. - If you want, tick Deliverability check to reject domains with no mail server. This catches typos such as
gmial.com. - Add your own Blocked domains and Blocked addresses, one per line or comma separated. Wildcards work for domains, for example
*.example.com. - Put genuine customers in Always allow. It is checked first and overrides every other rule.
- Set the Message shown when blocked. Keep it vague.
With Logging on, blocked attempts are written to the plugin log with the address partly masked. That helps when a customer says they cannot subscribe. Rules apply at signup and to CSV imports. Existing subscribers are left alone.
#Help and status checks
Instock Notifier > Help is the first place to look when an add-on is not doing what you expect.
- The System status table lists your parent plugin, WooCommerce and PHP versions, background processing, credential encryption, how many add-ons are switched on, and how many people are on waitlists.
- Copy system report copies versions and configuration state for a support request. It contains no subscriber addresses and no API keys.
- The Add-ons list shows every add-on with an ON or OFF badge. Expand an add-on for its current status, setup steps, settings reference, error messages, troubleshooting, and what it stores and sends. Start with red and amber rows.
- Use the filter box (for example
whatsapp,csvorunsubscribe) to find an add-on quickly.
The parent plugin's Instock Notifier > Status screen has a Test Email button. Use it when confirmation or restock emails never arrive for anyone.
Settings reference
Instock Notifier > Settings > Restock Reminders
| Setting | Type | Default | What it does |
|---|---|---|---|
| Send a reminder to people who have not bought yet | checkbox | Off |
Turns on the first reminder. |
| First reminder delay | number | 24 |
Hours after the restock alert. |
| First reminder subject | text | Still available: {only_product_name} |
Subject of the first reminder. |
| First reminder message | textarea | - | Body of the first reminder. Use {cart_link} so people can add the product straight to their basket. |
| Send one final reminder | checkbox | Off |
Turns on the second reminder. |
| Second reminder delay | number | 72 |
Measured from the original alert, not from the first reminder. Set it comfortably later than the first delay. |
| Second reminder subject | text | Last chance on {only_product_name} |
Subject of the second reminder. |
| Second reminder message | textarea | - | Body of the second reminder. |
| Stop below this stock level | number | 0 |
Reminders stop once stock falls to this level or below. Zero means keep reminding while anything is in stock. Only applies to products with stock management enabled. |
| Reminders per run | number | 50 |
How many reminders are sent per background run. |
Instock Notifier > Settings > SMS and WhatsApp
| Setting | Type | Default | What it does |
|---|---|---|---|
| Account SID | text | - | From the Twilio console. |
| Auth Token | text | - | From the Twilio console. Save your settings first. The test uses the saved credentials and the channel you selected, and it costs one message. |
| Channels | select | SMS only |
SMS only, WhatsApp only, or WhatsApp first, SMS if that fails. The third option falls back to SMS when the number has no WhatsApp account or the template is rejected. |
| Messaging Service SID | text | - | Optional but recommended for SMS. When set it is used instead of the From number and Twilio picks the best sender per destination. |
| SMS From number | text | - | A number on your Twilio account, in international format. Ignored when a Messaging Service SID is set. |
| WhatsApp From number | text | - | Your approved WhatsApp sender, in international format. Do not include the whatsapp: prefix; it is added for you. |
| WhatsApp Content SID | text | - | The approved template used for restock alerts. Variables 1 to 3 are filled with the product name, the price and the add to cart link, in that order. |
| Send the message body as free text when no Content SID is set | checkbox | Off |
Only works inside the twenty four hour service window. Outside it Meta rejects the message, which Twilio still charges you for as a failed attempt. |
| Message subscribers when their product is back in stock | checkbox | On |
Sends the restock alert by SMS or WhatsApp. |
| Restock message | textarea | {only_product_name} is back in stock at {shopname}. Grab it here: {cart_link} |
Keep it under 160 characters to stay in one SMS segment. Longer messages still send, they just cost more per recipient. |
| Send a short confirmation when someone joins a waitlist | checkbox | Off |
Off by default. It doubles your message spend and most stores confirm by email instead. |
| Signup confirmation message | textarea | You are on the list for {only_product_name} at {shopname}. We will text you the moment it is back. |
Text of the signup confirmation. |
| Country rules | text | - | Comma separated dialling codes to allow, for example 1, 44, 61. Leave empty to message every country. |
Instock Notifier > Settings > ActiveCampaign
| Setting | Type | Default | What it does |
|---|---|---|---|
| Send waitlist subscribers to ActiveCampaign | checkbox | Off |
Leave this off while you are still entering credentials. Nothing is sent until it is on. |
| Account URL | url | - | From Settings and then Developer in ActiveCampaign. No trailing slash and no /api/3 on the end. |
| API key | text | - | On the same Developer screen, directly below the account URL. |
| Target list | select | - | Save your credentials first, then use "Fetch lists" to load the audiences on your account. |
| Tags | text | Back In Stock, {only_product_name} |
Comma separated. Placeholders such as {only_product_name} and {product_id} are expanded per subscriber. |
| When someone leaves the waitlist, mark them unsubscribed on ActiveCampaign too | checkbox | On |
Recommended. Leaving this off means a customer who opted out here keeps receiving mail from the other platform. |
| Retry rows that have not reached the platform yet, in the background | checkbox | On |
Runs every five minutes and handles up to 25 subscribers per run, so a rate limit or an outage does not lose anybody. |
Instock Notifier > Settings > Brevo
| Setting | Type | Default | What it does |
|---|---|---|---|
| Send waitlist subscribers to Brevo | checkbox | Off |
Leave this off while you are still entering credentials. Nothing is sent until it is on. |
| API key | text | - | From SMTP and API and then API keys in your Brevo account. A v3 key, which starts with xkeysib. |
| Restock template ID | number | - | Optional. The numeric ID of a Brevo transactional template. When set, and "Send events" is on, the restock alert is sent from Brevo using this template instead of the WooCommerce email. |
| Suppress the WooCommerce restock email when Brevo sends its own | checkbox | Off |
Only takes effect when a template ID is set and events are on. Without it your customers receive two emails about the same restock. |
| Target list | select | - | Save your credentials first, then use "Fetch lists" to load the audiences on your account. |
| Tags | text | Back In Stock, {only_product_name} |
Comma separated. Placeholders such as {only_product_name} and {product_id} are expanded per subscriber. |
| When someone leaves the waitlist, mark them unsubscribed on Brevo too | checkbox | On |
Recommended. Leaving this off means a customer who opted out here keeps receiving mail from the other platform. |
| Retry rows that have not reached the platform yet, in the background | checkbox | On |
Runs every five minutes and handles up to 25 subscribers per run. |
| Send "subscribed" and "back in stock" events to Brevo | checkbox | Off |
Turn this on when you want to build the notification e-mail on the other platform rather than in WooCommerce. |
Instock Notifier > Settings > Constant Contact
| Setting | Type | Default | What it does |
|---|---|---|---|
| Send waitlist subscribers to Constant Contact | checkbox | Off |
Leave this off while you are still entering credentials. Nothing is sent until it is on. |
| API key | text | - | The API key of your app in the Constant Contact developer portal. Constant Contact calls this the client ID. |
| App secret | text | - | Generated alongside the API key. It is stored encrypted and only shown masked. |
| Target list | select | - | Save your credentials first, then use "Fetch lists" to load the audiences on your account. |
| Tags | text | Back In Stock, {only_product_name} |
Comma separated. Placeholders such as {only_product_name} and {product_id} are expanded per subscriber. |
| When someone leaves the waitlist, mark them unsubscribed on Constant Contact too | checkbox | On |
Recommended. Leaving this off means a customer who opted out here keeps receiving mail from the other platform. |
| Retry rows that have not reached the platform yet, in the background | checkbox | On |
Runs every five minutes and handles up to 25 subscribers per run. |
Instock Notifier > Settings > Klaviyo
| Setting | Type | Default | What it does |
|---|---|---|---|
| Send waitlist subscribers to Klaviyo | checkbox | Off |
Leave this off while you are still entering credentials. Nothing is sent until it is on. |
| Private API key | text | - | Create one under Settings and then API keys in Klaviyo. It needs full access, because this add-on writes profiles, events, templates and flows. |
| Suppress the WooCommerce restock and subscription emails | checkbox | Off |
Turn this on only once your Klaviyo flows are live and tested. Until then, leaving it off means customers still receive the built-in notification. |
| Target list | select | - | Save your credentials first, then use "Fetch lists" to load the audiences on your account. |
| Tags | text | Back In Stock, {only_product_name} |
Comma separated. Placeholders such as {only_product_name} and {product_id} are expanded per subscriber. |
| When someone leaves the waitlist, mark them unsubscribed on Klaviyo too | checkbox | On |
Recommended. Leaving this off means a customer who opted out here keeps receiving mail from the other platform. |
| Retry rows that have not reached the platform yet, in the background | checkbox | On |
Runs every five minutes and handles up to 25 subscribers per run. |
| Send "subscribed" and "back in stock" events to Klaviyo | checkbox | Off |
Turn this on when you want to build the notification e-mail on the other platform rather than in WooCommerce. |
Instock Notifier > Settings > Mailchimp
| Setting | Type | Default | What it does |
|---|---|---|---|
| Send waitlist subscribers to Mailchimp | checkbox | Off |
Leave this off while you are still entering credentials. Nothing is sent until it is on. |
| API key | text | - | From Account and then Extras and then API keys in Mailchimp. The part after the dash is your data centre and is read automatically. |
| Add contacts as pending so Mailchimp sends its own confirmation email | checkbox | Off |
Off means the contact is subscribed straight away. On means Mailchimp emails them to confirm, and they receive nothing until they click it. |
| Target list | select | - | Save your credentials first, then use "Fetch lists" to load the audiences on your account. |
| Tags | text | Back In Stock, {only_product_name} |
Comma separated. Placeholders such as {only_product_name} and {product_id} are expanded per subscriber. |
| When someone leaves the waitlist, mark them unsubscribed on Mailchimp too | checkbox | On |
Recommended. Leaving this off means a customer who opted out here keeps receiving mail from the other platform. |
| Retry rows that have not reached the platform yet, in the background | checkbox | On |
Runs every five minutes and handles up to 25 subscribers per run. |
Instock Notifier > Settings > MailerLite
| Setting | Type | Default | What it does |
|---|---|---|---|
| Send waitlist subscribers to MailerLite | checkbox | Off |
Leave this off while you are still entering credentials. Nothing is sent until it is on. |
| API token | text | - | From Integrations and then MailerLite API in your MailerLite account. Give the token read and write access to subscribers and groups. |
| Add contacts as unconfirmed so MailerLite sends its own opt-in email | checkbox | Off |
Leave off when you already confirm consent on your own site, for example with the Double Opt-In add-on. |
| Target list | select | - | Save your credentials first, then use "Fetch lists" to load the groups on your account. |
| Tags | text | Back In Stock, {only_product_name} |
Comma separated. Placeholders such as {only_product_name} and {product_id} are expanded per subscriber. |
| When someone leaves the waitlist, mark them unsubscribed on MailerLite too | checkbox | On |
Recommended. Leaving this off means a customer who opted out here keeps receiving mail from the other platform. |
| Retry rows that have not reached the platform yet, in the background | checkbox | On |
Runs every five minutes and handles up to 25 subscribers per run. |
Instock Notifier > Settings > Omnisend
| Setting | Type | Default | What it does |
|---|---|---|---|
| Send waitlist subscribers to Omnisend | checkbox | Off |
Leave this off while you are still entering credentials. Nothing is sent until it is on. |
| API key | text | - | From Store settings and then Integrations and API and then API keys in Omnisend. |
| Mark the email channel as subscribed | checkbox | On |
Turn this off to add contacts without opting them into marketing email. They can still receive automation messages triggered by the events. |
| Also subscribe the phone number to SMS when one was given | checkbox | Off |
Only turn this on if your subscribe form makes clear that giving a phone number means agreeing to texts. |
| Tags | text | Back In Stock, {only_product_name} |
Comma separated. Placeholders such as {only_product_name} and {product_id} are expanded per subscriber. |
| When someone leaves the waitlist, mark them unsubscribed on Omnisend too | checkbox | On |
Recommended. Leaving this off means a customer who opted out here keeps receiving mail from the other platform. |
| Retry rows that have not reached the platform yet, in the background | checkbox | On |
Runs every five minutes and handles up to 25 subscribers per run. |
| Send "subscribed" and "back in stock" events to Omnisend | checkbox | Off |
Turn this on when you want to build the notification e-mail on the other platform rather than in WooCommerce. |
Instock Notifier > Settings > Sales Attribution
| Setting | Type | Default | What it does |
|---|---|---|---|
| Also attribute orders whose billing email matches a notified subscriber | checkbox | On |
Catches customers who received the email, browsed away, and came back later without using the link. |
| Attribution window | number | 30 |
Days after the notification an order still counts. Only applies to email reconciliation; signed links are attributed regardless. |
| Record the attributed line total against each converted subscriber | checkbox | On |
Stores the line total of the subscribed product as revenue. |
Instock Notifier > Settings > Waitlist Analytics
| Setting | Type | Default | What it does |
|---|---|---|---|
| Default period | select | Last 30 days |
The period the reports open with: Last 7 days, Last 30 days, Last 90 days, Last 12 months or All time. |
| Show the top unmet demand on the WordPress dashboard | checkbox | On |
Adds a dashboard widget with the products most people are waiting for. |
| Rows per table | number | 25 |
How many rows each report table shows. |
Instock Notifier > Settings > Team Alerts
| Setting | Type | Default | What it does |
|---|---|---|---|
| Webhook URL | text | - | Treated as a credential: anybody holding this URL can post into your channel, so it is encrypted at rest and shown masked. |
| Destination | select | Slack |
Slack, Discord, Microsoft Teams or Plain JSON webhook. Must match the webhook URL. |
| Demand threshold | number | 25 |
Announce when a product passes this many waiting subscribers, and again at each multiple of it. Zero turns the alert off. |
| Post a summary after a batch of restock alerts goes out | checkbox | Off |
Batched over a few minutes rather than one message per subscriber, so a restock of a popular line does not flood the channel. |
| Post yesterday's signups, notifications and top demand once a day | checkbox | Off |
The daily digest. |
| Mention on threshold alerts | text | - | Optional, for example <!here> in Slack or @here in Discord. Only applied to the demand threshold alert. |
Instock Notifier > Settings > Waitlist Priority
| Setting | Type | Default | What it does |
|---|---|---|---|
| Notify in this order | select | First come, first served |
First come, first served; Highest lifetime spend first; Priority customer roles first, then signup order; or Registered customers first, then guests. |
| Priority roles | text | - | Comma separated role slugs, highest priority first, for example vip_customer, wholesale. Only used by the role ordering. |
| Release alerts in waves sized to available stock | checkbox | Off |
Turns on wave release. |
| People per unit of stock | number | 3 |
How many subscribers to notify per available unit. Three is a sensible start: not everybody who is told will buy. |
| Gap between waves | number | 30 |
Minutes between waves. Long enough for the first wave to actually order. Under fifteen minutes there is little point having waves at all. |
| Maximum waves | number | 5 |
The most waves released for one restock. |
| Stop at this stock level | number | 0 |
Waves stop once stock falls to this level. Useful when you hold a few units back for walk-in or wholesale. |
Instock Notifier > Settings > Double Opt-In
| Setting | Type | Default | What it does |
|---|---|---|---|
| New waitlist entries must be confirmed by email | checkbox | Off |
Turns on double opt-in for new signups. |
| Confirmation subject | text | Confirm your alert for {product_name} |
Subject of the confirmation email. |
| Confirmation message | textarea | - | Must contain {doubleoptin_verify_link}, otherwise nobody can confirm. |
| Message shown after signing up | text | Almost done. Check your inbox and confirm your alert. |
Shown on the product page after someone subscribes. |
| Message when a confirmation is already pending | text | We already sent a confirmation to that address. Check your inbox, including the spam folder. |
Shown when the same address signs up again before confirming. |
| Message shown after confirming | text | Confirmed. We will email you as soon as this product is back in stock. |
Shown after the confirmation link is clicked. |
| Message shown for an expired link | text | That confirmation link is no longer valid. Sign up again on the product page and we will send a new one. |
Shown when a link no longer verifies or the entry was already deleted. |
| Delete unconfirmed entries after | number | 7 |
Days before unconfirmed entries are deleted. |
| Record when and where each confirmation happened | checkbox | On |
Stores the timestamp, the originating page and a salted hash of the IP address. The raw IP is never kept. |
Instock Notifier > Settings > Unsubscribe
| Setting | Type | Default | What it does |
|---|---|---|---|
| Unsubscribe page | select | - | Must contain the [cwginstocknotifier_unsubscribe] shortcode. A page is created for you the first time the add-on is switched on. |
| Send List-Unsubscribe and List-Unsubscribe-Post headers | checkbox | On |
Strongly recommended. Turning this off makes it more likely your notifications land in spam. |
| Offer a "remove me from all waitlists" option on the confirmation page | checkbox | On |
Lets people leave every waitlist at once. |
| Confirmation message | textarea | You have been removed from this waitlist. We will not email <strong>{email_id}</strong> about this product again. |
Supports {email_id} and {product_name}. |
| Already unsubscribed message | textarea | <strong>{email_id}</strong> was already removed from this waitlist. You can rejoin at any time from the product page. |
Shown when the person had already left the waitlist. |
| Invalid link message | textarea | That unsubscribe link is not valid or has expired. If you have an account with us you can manage your waitlist from My Account. |
Shown when a link does not verify. |
| My Account endpoint | text | cwg-unsubscribe |
The URL segment for the Subscribed List tab. Save your permalinks once after changing it. |
| My Account tab label | text | Subscribed List |
Label of the tab in My Account. |
| Subscribed List heading | text | Products you are waiting for |
Heading on the Subscribed List tab. |
| Unsubscribe link text | text | Remove |
Text of the remove link in the Subscribed List. |
| Show a thumbnail in the Subscribed List | checkbox | On |
Shows product images in the list. |
| Hide the SKU in the Subscribed List | checkbox | Off |
Hides product SKUs in the list. |
| Show how many people are waiting for each product | checkbox | Off |
A little social proof. Leave it off if you would rather not reveal how thin demand is on slow lines. |
Instock Notifier > Settings > Editing Subscribers
| Setting | Type | Default | What it does |
|---|---|---|---|
| Record who changed what on each subscriber | checkbox | On |
Keeps a change history shown under the edit form. |
| Allow the same address on the same product more than once | checkbox | Off |
Leave this off unless you have a specific reason. Duplicates mean duplicate notification emails. |
Instock Notifier > Settings > Never Restock
| Setting | Type | Default | What it does |
|---|---|---|---|
| Redirect waitlists for discontinued products onto replacements | checkbox | Off |
Turns the add-on on and adds the Never Restock menu item for rules. |
| Rule priority | select | Use the first matching rule only |
Applies when one replacement product is named by more than one rule. "Every matching rule" can mean several emails to the same person, so use it deliberately. |
| Email subject | text | We found you an alternative to {only_product_name} |
Subject of the replacement email. |
| Email message | textarea | - | Body of the replacement email. Include {replacement_product} and {replacement_product_link}. |
| Emails per batch | number | 50 |
How many subscribers are emailed per background run. Lower this if your mail provider rate limits you. |
Instock Notifier > Settings > CSV Export
| Setting | Type | Default | What it does |
|---|---|---|---|
| Category columns | number | 5 |
Products can sit in several categories. This is how many category columns the file gets, so every row lines up. |
| Delimiter | select | Comma |
Comma, Semicolon or Tab. Semicolon suits regional Excel builds where comma is the decimal separator. |
Instock Notifier > Settings > CSV Import
| Setting | Type | Default | What it does |
|---|---|---|---|
| Status for rows with no status column | select | Subscribed |
Subscribed, Notified or Unsubscribed. |
| Treat imported rows as new subscriptions | checkbox | Off |
Off by default. Turning it on means every imported row is pushed to your marketing platform and can trigger a subscription confirmation. |
| Skip rows whose product does not exist in this store | checkbox | On |
Leave this on. A subscriber attached to a product that is not here can never be notified. |
Instock Notifier > Settings > Subscribe Form Styling
| Setting | Type | Default | What it does |
|---|---|---|---|
| Form width on desktop | number | 100 |
Percentage of the available column width. |
| Form width on mobile | number | 100 |
Applied below 768px. Rendered as a media query, so it survives page caching that serves one HTML document to every device. |
| Heading font size | number | 18 |
Font size of the form heading, in pixels. |
| Button font size | number | 14 |
Font size of the subscribe button, in pixels. |
| Button corner radius | number | - | Optional. Leave empty to inherit the theme. |
| Form panel corner radius | number | - | Rounds the whole panel. Most visible on the Card and Bold designs. |
| Form panel shadow | select | Leave as the design sets it |
Leave as the design sets it, None, Subtle or Pronounced. |
| Input corner radius | number | - | Rounds the name, email and phone fields. |
| Popup backdrop opacity | number | - | Opacity of the backdrop behind the popup, in percent. |
| Popup corner radius | number | - | Rounds the popup. |
| Popup maximum width | number | - | Ignored by the Side Drawer, which is sized to the edge of the screen. |
| Popup button font size | number | - | Font size of the popup button. |
| Guest notice font size | number | - | Font size of the guest notice. |
| Custom CSS | textarea | - | Emitted after every rule above, so it always wins. Tags and scripts are stripped on save. |
Instock Notifier > Settings > Demand Signals
| Setting | Type | Default | What it does |
|---|---|---|---|
| Minimum before showing | number | - | Below this number of waiting people, nothing is shown. |
| Where to show it | select | - | On a variable product the notice is rendered inside each variation form, so it always reflects the variation the shopper has selected. The heading bar option sits on a coloured background, so pick a text colour that suits it. |
| Message | text | {count} people are waiting for this to come back. |
Use {count} for the number. |
| Tell a new subscriber where they are in the queue | checkbox | Off |
Shows the queue position message after signup. |
| Queue position message | text | You are number {position} in the queue. |
Use {position} for their place. Shown straight after they subscribe. |
| Also show a short badge on product listings | checkbox | Off |
Adds the count to shop and category pages. |
| Appearance | select | Quiet text |
Quiet text, Coloured badge, or No styling, inherit the theme. |
Instock Notifier > Settings > Blocked Emails
| Setting | Type | Default | What it does |
|---|---|---|---|
| Block the bundled list of throwaway mail providers | checkbox | On |
Uses the list of disposable mail domains that ships with the add-on. |
| Blocked providers | textarea | - | Read only, because this list is refreshed when the add-on updates. To allow one of these domains, add it to "Always allow". To block more, use "Blocked domains". |
| Block shared mailboxes such as info@, admin@ and sales@ | checkbox | Off |
Blocks role accounts. |
| Reject domains with no mail server configured | checkbox | Off |
Performs a DNS lookup for an MX record, cached for a day per domain. Catches typos such as gmial.com. |
| Blocked domains | textarea | - | One per line or comma separated. Wildcards allowed, for example *.example.com. |
| Blocked addresses | textarea | - | Full addresses, one per line or comma separated. |
| Always allow | textarea | - | Addresses or domains that bypass every rule above. Checked first. |
| Message shown when blocked | text | We cannot use that email address. Please try another one. |
Shown to a visitor whose address is blocked. |
| Record blocked attempts in the plugin log | checkbox | On |
Addresses are partially masked in the log. Useful when a customer reports they cannot subscribe. |
Shortcodes
[bis_demand_count]
Shows how many people are waiting for a product (Demand Signals add-on). Without an attribute, it shows the count for the current product. Use it to place the count anywhere, for example in a page builder layout. Set **Where to show it** to `Only where I place the shortcode` if you only want the count where you put it.
[bis_demand_count id="123"]
| Attribute | Default | Description |
|---|---|---|
id | - | The product ID to show the count for. Leave it out to use the current product. |
[cwginstocknotifier_unsubscribe]
Handles unsubscribe links on the page you select as **Unsubscribe page** on the Unsubscribe tab. The page must contain this shortcode.
[cwginstocknotifier_unsubscribe]
On your site
Several add-ons change what shoppers see on an out of stock product page.
- Demand Signals adds a line such as "{count} people are waiting for this to come back." to the subscribe form, placed where you chose. Nothing shows until the count reaches your minimum. If you turn it on, new subscribers also see their place in the queue.
- Custom CSS changes the colours, sizes and widths of the subscribe form, its button and the popup.
- Double Opt-In shows your on-screen messages after signup, after confirming and for expired links.
- Ban Emails shows your Message shown when blocked when an address is rejected.
- Unsubscribe adds the unsubscribe page and a Subscribed List tab in My Account, where logged-in customers can remove themselves from waitlists.
Frequently asked questions
Does switching an add-on off delete its settings or data?
No. Switching an add-on off leaves its settings and data alone. Turn it back on under Instock Notifier > Add-ons and it picks up exactly where you left it.
I already have some individual add-on plugins installed. What should I do?
Deactivate the individual add-on plugins and manage everything from the bundle instead. Your existing add-on selection and settings carry forward, so nothing needs re-entering.
Can I use the WPML and Polylang add-ons together?
No. Switch on only the add-on that matches the multilingual plugin you actually use.
Why are revenue and conversion empty in Waitlist Analytics?
Conversion and revenue come from the Track Sales add-on. It links an order back to the notification that caused it. Switch it on and make sure your restock email uses {cart_link}.
Does importing subscribers from CSV send emails?
Not by default. Imported rows are added at the status you map. They are not pushed to your marketing platform unless you turn on Run integrations on import on the CSV Import tab.
Will Double Opt-In affect people already on my waitlists?
No. Confirmation only applies to new signups from the moment you turn it on. Anyone already on a waitlist stays active.
Are my API keys stored safely?
API credentials are encrypted at rest and shown masked in the settings. The Copy system report on the Help screen leaves out API keys and subscriber addresses.
Can I show a higher waiting count to create urgency?
No. Demand Signals only shows real counts, and there is no setting to inflate them. Use Minimum before showing to hide small counts instead.
Troubleshooting
- An add-on's settings tab, menu item or Edit link is missing
The add-on is probably switched off. Go to Instock Notifier > Add-ons and click Switch on next to it. For Edit Subscribers, the user also needs permission to manage WooCommerce.
- Subscribers are not reaching my marketing platform
- Check that Enable sync is on and a Target list is selected.
- Click Fetch lists to confirm the key works.
- Look at the platform's column in the subscribers list, which shows the sync state per row.
- Open Instock Notifier > Help. The add-on's panel shows what is queued or failing.
For ActiveCampaign, a 403 error almost always means the account URL is wrong.
- Customers receive two restock emails
Both the platform and WooCommerce are sending the alert. Fix it for your platform:
- Brevo: turn on Replace the built-in email.
- Klaviyo: turn on Let Klaviyo send the email once your flows are live.
- Omnisend: turn off the built-in notification under WooCommerce > Settings > Emails.
- Subscribe form styling changes are not showing
This is almost always a page cache or a CDN. Purge both, then hard reload the product page. If the page still looks the same, your theme may load its own stylesheet later. Put your rule in the Custom CSS box on the Subscribe Form Styling tab, because it is output last.
- Confirmation or restock emails never arrive for anyone
This is an email delivery problem, not an add-on problem. Use Test Email on Instock Notifier > Status to check that your site can send mail. If you send through PHP mail, consider an SMTP plugin.
- Translated notifications arrive in the site language
That language has no translation yet, so the original text is sent. Check the translation status table in the add-on's settings and add the missing text.
- WPML and Polylang: also make sure "Treat translations as one waitlist" is on.
- Weglot: install the WordPress language pack under Settings > General so the email template is translated too.