{"id":342796,"date":"2026-08-03T14:58:47","date_gmt":"2026-08-03T14:58:47","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/riaco-back-in-stock-for-woocommerce\/"},"modified":"2026-08-03T14:58:17","modified_gmt":"2026-08-03T14:58:17","slug":"riaco-back-in-stock-for-woocommerce","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/riaco-back-in-stock-for-woocommerce\/","author":8872771,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.0.1","stable_tag":"1.0.1","tested":"7.0.2","requires":"6.4","requires_php":"7.4","requires_plugins":null,"header_name":"RIACO Back In Stock for WooCommerce","header_author":"RIACO","header_description":"WooCommerce waitlist \u2014 show an email signup form when a product is out of stock, and notify subscribers in the background (no timeouts) when it's back.","assets_banners_color":"788ab9","last_updated":"2026-08-03 14:58:17","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/wordpress.org\/plugins\/riaco-back-in-stock-for-woocommerce\/","header_author_uri":"https:\/\/riacoplugins.com\/","rating":0,"author_block_rating":0,"active_installs":0,"downloads":27,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.1":{"tag":"1.0.1","author":"prototipo88","date":"2026-08-03 14:58:17"}},"upgrade_notice":{"1.0.1":"<p>Recommended update: fixes a bug that could break the subscribers admin list\/CSV export, plus security hardening.<\/p>","1.0.0":"<p>Initial release \u2014 no upgrade required.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3633088,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3633088,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3633088,"resolution":"1544x500","location":"assets","locale":"","width":1824,"height":576},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3633088,"resolution":"772x250","location":"assets","locale":"","width":792,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.1"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3633088,"resolution":"1","location":"assets","locale":"","width":1366,"height":641},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3633088,"resolution":"2","location":"assets","locale":"","width":1366,"height":641},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3633088,"resolution":"3","location":"assets","locale":"","width":797,"height":1049},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3633088,"resolution":"4","location":"assets","locale":"","width":1366,"height":641}},"screenshots":{"1":"Frontend \"Notify Me\" signup form on an out-of-stock product.","2":"WooCommerce settings tab \u2014 enable\/disable the feature.","3":"Email settings screen \u2014 customize subject and message.","4":"Admin waitlist screen \u2014 filter, search, and export subscribers as CSV."}},"plugin_section":[],"plugin_tags":[155593,282,265301,4422,286],"plugin_category":[45],"plugin_contributors":[238641],"plugin_business_model":[],"class_list":["post-342796","plugin","type-plugin","status-publish","hentry","plugin_tags-back-in-stock","plugin_tags-ecommerce","plugin_tags-notify-me","plugin_tags-waitlist","plugin_tags-woocommerce","plugin_category-ecommerce","plugin_contributors-prototipo88","plugin_committers-prototipo88"],"banners":{"banner":"https:\/\/ps.w.org\/riaco-back-in-stock-for-woocommerce\/assets\/banner-772x250.png?rev=3633088","banner_2x":"https:\/\/ps.w.org\/riaco-back-in-stock-for-woocommerce\/assets\/banner-1544x500.png?rev=3633088","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/riaco-back-in-stock-for-woocommerce\/assets\/icon-128x128.png?rev=3633088","icon_2x":"https:\/\/ps.w.org\/riaco-back-in-stock-for-woocommerce\/assets\/icon-256x256.png?rev=3633088","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/riaco-back-in-stock-for-woocommerce\/assets\/screenshot-1.png?rev=3633088","caption":"Frontend \"Notify Me\" signup form on an out-of-stock product."},{"src":"https:\/\/ps.w.org\/riaco-back-in-stock-for-woocommerce\/assets\/screenshot-2.png?rev=3633088","caption":"WooCommerce settings tab \u2014 enable\/disable the feature."},{"src":"https:\/\/ps.w.org\/riaco-back-in-stock-for-woocommerce\/assets\/screenshot-3.png?rev=3633088","caption":"Email settings screen \u2014 customize subject and message."},{"src":"https:\/\/ps.w.org\/riaco-back-in-stock-for-woocommerce\/assets\/screenshot-4.png?rev=3633088","caption":"Admin waitlist screen \u2014 filter, search, and export subscribers as CSV."}],"raw_content":"<!--section=description-->\n<p><strong>RIACO Back In Stock for WooCommerce<\/strong> turns out-of-stock products into a waitlist instead of a dead end. When a product is out of stock, shoppers can leave their email address; when it's back, every subscriber is notified automatically.<\/p>\n\n<p>Most \"notify me\" plugins email subscribers with a plain <code>foreach<\/code> loop at request time, which risks failing or timing out partway through on a large list. This plugin instead queues each notification as its own background job (via WooCommerce's bundled Action Scheduler), so one slow send or one failure never blocks the rest of the list, and there's no single-request time limit to run into.<\/p>\n\n<h4>Features<\/h4>\n\n<ul>\n<li><strong>Frontend signup form<\/strong> \u2014 appears automatically on out-of-stock simple and variable products.<\/li>\n<li><strong>[riaco_bis_form] shortcode<\/strong> \u2014 for themes that override the single-product template and don't show the automatic form, or to place the signup form anywhere else (a page, a widget).<\/li>\n<li><strong>Works for guests and members<\/strong> \u2014 logged-in customers get their email pre-filled.<\/li>\n<li><strong>No duplicate signups<\/strong> \u2014 an email can only be waitlisted once per product, enforced at the database level.<\/li>\n<li><strong>Per-product control<\/strong> \u2014 exclude any individual product from the waitlist from its edit screen.<\/li>\n<li><strong>Background email delivery<\/strong> \u2014 restock notifications are queued and sent asynchronously, one per subscriber, so large waitlists can't time out a request.<\/li>\n<li><strong>Customizable emails<\/strong> \u2014 subject and message are editable from WooCommerce \u203a Settings \u203a Emails, with placeholders for product name, product URL, and unsubscribe link.<\/li>\n<li><strong>Honeypot spam protection<\/strong> \u2014 a hidden field silently rejects bot submissions.<\/li>\n<li><strong>Optional privacy policy consent checkbox<\/strong> \u2014 require shoppers to accept your privacy policy before joining a waitlist, toggle it on from Settings.<\/li>\n<li><strong>One-click unsubscribe<\/strong> \u2014 every notification includes an unsubscribe link.<\/li>\n<li><strong>GDPR ready<\/strong> \u2014 integrates with WordPress's built-in personal data exporter\/eraser tools, and adds suggested privacy-policy content.<\/li>\n<li><strong>CSV export<\/strong> \u2014 export the full waitlist (or a filtered view) from the admin screen.<\/li>\n<li><strong>HPOS compatible<\/strong> \u2014 fully compatible with WooCommerce High-Performance Order Storage.<\/li>\n<li><strong>Translation ready<\/strong> \u2014 all strings are internationalised with a <code>.pot<\/code> file included.<\/li>\n<\/ul>\n\n<h4>Compatibility<\/h4>\n\n<p>WooCommerce is in the process of building a native \"Customer Stock Notifications\" feature (currently unreleased\/alpha-gated). This plugin automatically steps aside if that native feature is ever turned on for your store, so the two won't stack duplicate signup forms.<\/p>\n\n<h4>Minimum Requirements<\/h4>\n\n<ul>\n<li>WordPress 6.4 or greater<\/li>\n<li>WooCommerce 8.0 or greater<\/li>\n<li>PHP 7.4 or greater<\/li>\n<\/ul>\n\n<!--section=installation-->\n<ol>\n<li>Upload the <code>riaco-back-in-stock-for-woocommerce<\/code> folder to <code>\/wp-content\/plugins\/<\/code>.<\/li>\n<li>Activate the plugin through the <strong>Plugins<\/strong> menu in WordPress.<\/li>\n<li>Go to <strong>WooCommerce \u203a Settings \u203a Products \u203a Back In Stock<\/strong> to enable\/disable the feature.<\/li>\n<li>Go to <strong>WooCommerce \u203a Settings \u203a Emails \u203a Back In Stock Notification<\/strong> to customize the subject and message.<\/li>\n<li>View the waitlist and export it as CSV from <strong>WooCommerce \u203a Back In Stock<\/strong>.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20this%20work%20with%20variable%20products%3F\"><h3>Does this work with variable products?<\/h3><\/dt>\n<dd><p>Yes. The signup form appears for the specific out-of-stock variation a shopper has selected, and only that variation's subscribers are notified when it's restocked.<\/p><\/dd>\n<dt id=\"my%20theme%20doesn%27t%20show%20the%20signup%20form%20%E2%80%94%20what%20can%20i%20do%3F\"><h3>My theme doesn't show the signup form \u2014 what can I do?<\/h3><\/dt>\n<dd><p>Some themes override WooCommerce's own single-product templates and skip the hook this plugin uses to render the form automatically. Use the <code>[riaco_bis_form]<\/code> shortcode instead \u2014 place it anywhere in a product description, a page, or a widget. It accepts an optional <code>product_id<\/code> attribute (e.g. <code>[riaco_bis_form product_id=\"123\"]<\/code>); without one, it uses the product currently being viewed.<\/p><\/dd>\n<dt id=\"can%20i%20turn%20the%20waitlist%20off%20for%20a%20specific%20product%3F\"><h3>Can I turn the waitlist off for a specific product?<\/h3><\/dt>\n<dd><p>Yes. Edit the product, open the <strong>Inventory<\/strong> tab, and uncheck <strong>Enable back-in-stock waitlist<\/strong>. This works for both simple and variable products (it applies to all of a variable product's variations).<\/p><\/dd>\n<dt id=\"how%20are%20emails%20sent%20without%20timing%20out%20on%20a%20large%20list%3F\"><h3>How are emails sent without timing out on a large list?<\/h3><\/dt>\n<dd><p>Each subscriber's email is queued as its own independent background action via Action Scheduler (bundled with WooCommerce). WordPress processes the queue across multiple background requests instead of one long loop, so a large waitlist, a slow mail server, or an individual failure never blocks the rest.<\/p><\/dd>\n<dt id=\"can%20i%20customise%20the%20notification%20email%3F\"><h3>Can I customise the notification email?<\/h3><\/dt>\n<dd><p>Yes. Go to <strong>WooCommerce \u203a Settings \u203a Emails \u203a Back In Stock Notification<\/strong> to edit the subject, heading, and message. The message supports <code>{product_name}<\/code>, <code>{product_url}<\/code>, <code>{unsubscribe_url}<\/code>, and <code>{site_title}<\/code> placeholders.<\/p><\/dd>\n<dt id=\"is%20the%20plugin%20gdpr%20compliant%3F\"><h3>Is the plugin GDPR compliant?<\/h3><\/dt>\n<dd><p>The plugin integrates with WordPress's native Export Personal Data and Erase Personal Data tools (Tools \u203a Export\/Erase Personal Data), and adds suggested wording to Settings \u203a Privacy. Erasing a subscriber's data permanently deletes their waitlist entries.<\/p><\/dd>\n<dt id=\"can%20i%20require%20shoppers%20to%20accept%20my%20privacy%20policy%20before%20signing%20up%3F\"><h3>Can I require shoppers to accept my privacy policy before signing up?<\/h3><\/dt>\n<dd><p>Yes. Enable <strong>Require privacy policy consent<\/strong> under <strong>WooCommerce \u203a Settings \u203a Products \u203a Back In Stock<\/strong>, and a checkbox is added to the signup form linking to the page set under Settings \u203a Privacy. This is off by default.<\/p><\/dd>\n<dt id=\"is%20the%20plugin%20compatible%20with%20woocommerce%20hpos%3F\"><h3>Is the plugin compatible with WooCommerce HPOS?<\/h3><\/dt>\n<dd><p>Yes. The plugin declares full compatibility with WooCommerce High-Performance Order Storage (Custom Order Tables).<\/p><\/dd>\n<dt id=\"does%20the%20plugin%20make%20remote%20http%20requests%3F\"><h3>Does the plugin make remote HTTP requests?<\/h3><\/dt>\n<dd><p>No. The plugin never makes external HTTP requests.<\/p><\/dd>\n<dt id=\"does%20the%20plugin%20have%20hooks%20for%20developers%3F\"><h3>Does the plugin have hooks for developers?<\/h3><\/dt>\n<dd><p>Yes. Every step of the signup, restock-detection, and notification flow fires a <code>riaco_bis_*<\/code> action or filter (for example <code>riaco_bis_subscribed<\/code>, <code>riaco_bis_should_dispatch<\/code>, <code>riaco_bis_email_placeholders<\/code>) that other code can hook into to extend the plugin's behavior. None of them change anything by default \u2014 they only matter if something else hooks into them.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.1<\/h4>\n\n<ul>\n<li>Security: verify a nonce before saving the per-product waitlist enable\/disable toggle.<\/li>\n<li>Fix: a query-building bug that could break the subscribers admin list and CSV export under certain filter\/sort combinations.<\/li>\n<li>Additional WordPress coding-standards hardening across the admin, unsubscribe, and email code.<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release.<\/li>\n<\/ul>","raw_excerpt":"A WooCommerce waitlist plugin: collect emails on out-of-stock products and notify subscribers in the background \u2014 no timeouts \u2014 when they&#039;re back.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/342796","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=342796"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/prototipo88"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=342796"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=342796"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=342796"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=342796"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=342796"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=342796"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}