{"id":395752,"date":"2026-10-30T06:26:02","date_gmt":"2026-10-30T06:26:02","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/joinery-back-in-stock-alerts\/"},"modified":"2026-10-30T06:25:46","modified_gmt":"2026-10-30T06:25:46","slug":"joinery-stock-alerts","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/joinery-stock-alerts\/","author":23593695,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"0.1.0","stable_tag":"0.1.0","tested":"7.1.4","requires":"6.5","requires_php":"8.1","requires_plugins":null,"header_name":"Joinery Back-in-Stock Alerts","header_author":"Joinery","header_description":"Customers ask to be emailed when an out-of-stock product or option is back. One email each, sent automatically when it's restocked.","assets_banners_color":"c9cba1","last_updated":"2026-10-30 06:25:46","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"","header_author_uri":"https:\/\/www.joinerywp.com","rating":0,"author_block_rating":0,"active_installs":0,"downloads":53,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"0.1.0":{"tag":"0.1.0","author":"joinery","date":"2026-10-30 06:25:46","revision":3774495}},"upgrade_notice":[],"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3774495,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3774495,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3774495,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3774495,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{"blueprint.json":{"filename":"blueprint.json","revision":3774495,"resolution":false,"location":"assets","locale":"","contents":"{\"$schema\":\"https:\\\/\\\/playground.wordpress.net\\\/blueprint-schema.json\",\"meta\":{\"title\":\"Joinery Back-in-Stock Alerts\",\"description\":\"WooCommerce with Back-in-Stock Alerts, two out-of-stock products and customers waiting for them.\",\"author\":\"joinery\"},\"landingPage\":\"\\\/?product=walnut-shelf-80-cm\",\"preferredVersions\":{\"php\":\"8.3\",\"wp\":\"latest\"},\"features\":{\"networking\":true},\"steps\":[{\"step\":\"login\"},{\"step\":\"installPlugin\",\"pluginData\":{\"resource\":\"wordpress.org\\\/plugins\",\"slug\":\"woocommerce\"},\"options\":{\"activate\":true}},{\"step\":\"installPlugin\",\"pluginData\":{\"resource\":\"wordpress.org\\\/plugins\",\"slug\":\"joinery-stock-alerts\"},\"options\":{\"activate\":true}},{\"step\":\"setSiteOptions\",\"options\":{\"blogname\":\"Joinery demo shop\",\"woocommerce_coming_soon\":\"no\",\"woocommerce_currency\":\"USD\",\"woocommerce_default_country\":\"US:CA\",\"woocommerce_onboarding_profile\":{\"skipped\":true},\"woocommerce_task_list_hidden\":\"yes\",\"woocommerce_show_marketplace_suggestions\":\"no\"}},{\"step\":\"runPHP\",\"code\":\"<?php require_once '\\\/wordpress\\\/wp-load.php';\\n\\\/\\\/ Open on the product page, not WooCommerce's welcome screen.\\ndelete_transient( '_wc_activation_redirect' );\\n$term = term_exists( 'Hardware', 'product_cat' );\\n$category = $term ? (int) $term['term_id'] : (int) wp_insert_term( 'Hardware', 'product_cat' )['term_id'];\\n$product = function ( $name, $price, $sku, $stock ) use ( $category ) {\\n\\t$item = new WC_Product_Simple();\\n\\t$item->set_name( $name );\\n\\t$item->set_regular_price( $price );\\n\\t$item->set_sku( $sku );\\n\\t$item->set_stock_status( $stock );\\n\\t$item->set_status( 'publish' );\\n\\t$item->set_category_ids( array( $category ) );\\n\\treturn $item->save();\\n};\\n$product( 'Oak shelf bracket', '12', 'BRK-OAK', 'instock' );\\n$product( 'Oak shelf, 80 cm', '35', 'SHELF-OAK-80', 'instock' );\\n$walnut = $product( 'Walnut shelf, 80 cm', '45', 'SHELF-WAL-80', 'outofstock' );\\n$black = $product( 'Black shelf bracket', '12', 'BRK-BLK', 'outofstock' );\\n\\\/\\\/ Customers already waiting, so WooCommerce \\u2192 Stock alerts has something to show.\\n$alerts = new Joinery\\\\StockAlerts\\\\Alerts();\\nforeach ( array( 'jo@example.com', 'priya@example.com', 'tom@example.com' ) as $email ) {\\n\\t$alerts->subscribe( $walnut, $email, 0 );\\n}\\n$alerts->subscribe( $black, 'sam@example.com', 0 );\\n\"}]}"}},"all_blocks":[],"tagged_versions":["0.1.0"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3774495,"resolution":"1","location":"assets","locale":"","width":1332,"height":1096},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3774495,"resolution":"2","location":"assets","locale":"","width":2220,"height":508}},"screenshots":{"1":"The sign-up form under an out-of-stock product.","2":"WooCommerce \u2192 Stock alerts: what customers are waiting for, most wanted first."}},"plugin_section":[],"plugin_tags":[155593,4423,139886,4422,286],"plugin_category":[45],"plugin_contributors":[288874],"plugin_business_model":[],"class_list":["post-395752","plugin","type-plugin","status-publish","hentry","plugin_tags-back-in-stock","plugin_tags-out-of-stock","plugin_tags-stock-notification","plugin_tags-waitlist","plugin_tags-woocommerce","plugin_category-ecommerce","plugin_contributors-joinery","plugin_committers-joinery"],"banners":{"banner":"https:\/\/ps.w.org\/joinery-stock-alerts\/assets\/banner-772x250.png?rev=3774495","banner_2x":"https:\/\/ps.w.org\/joinery-stock-alerts\/assets\/banner-1544x500.png?rev=3774495","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/joinery-stock-alerts\/assets\/icon-128x128.png?rev=3774495","icon_2x":"https:\/\/ps.w.org\/joinery-stock-alerts\/assets\/icon-256x256.png?rev=3774495","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/joinery-stock-alerts\/assets\/screenshot-1.png?rev=3774495","caption":"The sign-up form under an out-of-stock product."},{"src":"https:\/\/ps.w.org\/joinery-stock-alerts\/assets\/screenshot-2.png?rev=3774495","caption":"WooCommerce \u2192 Stock alerts: what customers are waiting for, most wanted first."}],"raw_content":"<!--section=description-->\n<p>When a product is out of stock, Joinery Back-in-Stock Alerts adds a short form under it: \u201cOut of stock. Want an email when it\u2019s back?\u201d For variable products, customers choose which out-of-stock option they want.<\/p>\n\n<ul>\n<li>When you restock (by hand, by import, or when a refund puts stock back), everyone waiting gets one email in your WooCommerce email design, with a link to the product.<\/li>\n<li>Emails go out in the background, 50 at a time, so restocking a popular product never slows your shop down.<\/li>\n<li>WooCommerce \u2192 Stock alerts lists what customers are waiting for, most wanted first, so you know what to restock.<\/li>\n<li>Works with classic and block themes, needs no setup, and uses your theme\u2019s own styles. No JavaScript.<\/li>\n<li>Keeps bots out with a hidden field and a limit per visitor, without a captcha. Works with page caching.<\/li>\n<\/ul>\n\n<h4>Privacy<\/h4>\n\n<p>Joinery Back-in-Stock Alerts doesn\u2019t contact any external service and doesn\u2019t track you or your customers. It stores the email address, the product and when someone asked, sends one email, and deletes the request 30 days after sending it. Every email has a link to delete the request. It works with WordPress\u2019s personal data export and erasure tools and suggests text for your privacy policy. To limit requests, it keeps a hash of the visitor\u2019s IP address for an hour; the address itself is never stored.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Install and activate WooCommerce.<\/li>\n<li>Install and activate Joinery Back-in-Stock Alerts.<\/li>\n<li>Visit an out-of-stock product: the form appears under it.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20it%20send%20emails%20for%20products%20on%20backorder%3F\"><h3>Does it send emails for products on backorder?<\/h3><\/dt>\n<dd><p>No. Products on backorder can already be ordered, so customers don\u2019t need an alert.<\/p><\/dd>\n<dt id=\"can%20customers%20sign%20up%20for%20several%20products%3F\"><h3>Can customers sign up for several products?<\/h3><\/dt>\n<dd><p>Yes, one request per product or option. Asking again for the same product after the email was sent asks again.<\/p><\/dd>\n<dt id=\"what%20happens%20to%20waiting%20alerts%20if%20i%20delete%20the%20plugin%3F\"><h3>What happens to waiting alerts if I delete the plugin?<\/h3><\/dt>\n<dd><p>They\u2019re deleted with it, email addresses included. Deactivating the plugin keeps them.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>0.1.0<\/h4>\n\n<ul>\n<li>First version: alert forms for out-of-stock products and options, emails when they\u2019re restocked, the Stock alerts page, and privacy tools.<\/li>\n<\/ul>","raw_excerpt":"Customers ask to be emailed when an out-of-stock product is back. One email each, sent automatically when you restock.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/395752","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=395752"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/joinery"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=395752"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=395752"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=395752"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=395752"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=395752"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=395752"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}