| 开发者 | webmastersteam |
|---|---|
| 更新时间 | 2026年5月21日 14:21 |
| 捐献地址: | 去捐款 |
| PHP版本: | 8.0 及以上 |
| WordPress版本: | 7.0 |
| 版权: | GPLv2 or later |
| 版权网址: | 版权信息 |
{prefix}_waitlist_subscriptions) — we do not clutter wp_postmeta, the plugin scales to tens of thousands of subscriptions.WooCommerce → Status → Scheduled Actions.render_block filter for FSE.[wt_waitlist product_id="123"] — use this if your custom product template does not fire the standard hooks.
What WT Waitlist does NOT do (by design)
wt_waitlist/notification_context filter).wt-waitlist in wp-content/plugins/).Automatically — the plugin hooks into the standard WooCommerce action (woocommerce_single_product_summary) for classic themes and into the render_block filter for block themes (FSE). The form is shown only when the product is out of stock.
Use the shortcode [wt_waitlist product_id="123"] — it works everywhere, from page builders to custom single product templates.
Action Scheduler processes batches of 50 subscribers per tick. For a product with 1000 subscribers we queue 20 batches, each processed asynchronously, without blocking the PHP request.
Yes. We use wp_mail() — if you have WP Mail SMTP, SendGrid, Amazon SES etc. configured, the mail travels through them. The plugin does not hardcode any provider.
The uninstall.php file drops the tables and deletes the options. Clean. If you deactivate without deleting, the data stays — you can reactivate without losing subscriptions.
The plugin stores anonymized IPs (last octet zeroed), consent timestamp and user agent. It integrates with WordPress Privacy Tools — a customer can request data export or deletion through the standard WordPress flow.
First check whether the product is actually out of stock — the form replaces the Add to cart button only when stock is zero (or the variation is unavailable). If the product is out of stock and the form still does not appear, your theme likely uses a custom single-product template that bypasses the standard WooCommerce hooks. Drop the shortcode [wt_waitlist product_id="123"] directly into the product description or template. The shortcode also works inside page builders (Elementor, Bricks, Divi).
Open WT Waitlist → Settings and click Send test email to admin. If the test email arrives — wp_mail() works and notifications will be delivered as soon as the product returns to stock (give Action Scheduler 1–2 minutes to process the batch). If the test email does not arrive, the problem is on your mail pipeline, not on the plugin. Install the free WP Mail SMTP plugin and route mail through a transactional provider (SMTP2GO, Brevo, SendGrid, Amazon SES). Shared hosting often blocks mail() silently.
Open WooCommerce → Status → Scheduled Actions and filter by hook wt_waitlist_*. You will see pending and completed jobs with timestamps. If nothing appears after a stock change, check the System status panel inside WT Waitlist → Settings — it shows whether Action Scheduler is available and how many wt_waitlist_* jobs are pending.
Open WT Waitlist → Settings, click Copy diagnostic info and paste the resulting block into your email to support. It includes plugin/WP/WC/PHP versions, theme info, table state, subscription counts, recent email log, Action Scheduler status and a sample of out-of-stock products with their purchasable / backorders state — everything we need to diagnose the issue without going back and forth.
Themes with custom product-page templates (Flatsome UX Builder, Avada Builder, Enfold templates, Porto) often replace the standard WooCommerce single-product template, which bypasses the hooks WT Waitlist uses to attach the signup form. As of v1.0.3 we ship multiple compatibility layers, including a wp_footer JS DOM-injection fallback that should handle most of these themes automatically. The plugin also detects these themes and shows a compatibility note inside WT Waitlist → Settings → System status.
If the form still does not show:
[wt_waitlist product_id="123"] directly inside the product description / UX block / Custom HTML block.That means the product has backorders enabled (Product → Inventory → Allow backorders). WooCommerce treats it as purchasable even though is_in_stock() returns false — and your customers see the standard "Add to cart" button alongside a backorder notice. WT Waitlist still renders its signup form for such products (so both signup paths coexist), but if the form is missing on a backorder-allowed product, check the Sample out-of-stock products section inside the diagnostic info (button Copy diagnostic info) — it lists is_purchasable / backorders_allowed / subscribers per OOS product so you can see exactly how WooCommerce treats each item.
is_in_stock, which is true for onbackorder variations. The plugin now tags each variation server-side (woocommerce_available_variation) with an explicit waitlist flag, so the form shows correctly for every non-instock variation.instock, outofstock and onbackorder — and WC_Product::is_in_stock() returns true for both instock and onbackorder. The previous version's check !is_in_stock() therefore skipped backorder products entirely. We now use get_stock_status() !== 'instock' so the form is rendered (and accepts signups) for both true-OOS and backorder products. This is the primary fix in 1.0.3 — strongly recommended for any store using WooCommerce backorders.woocommerce_after_single_product_summary (Layer 4) and wp_footer + JS DOM injection (Layer 5). Fixes "signup form does not appear" on themes that bypass the standard WooCommerce summary hooks (Flatsome UX Builder, Avada Builder, Enfold, Porto and similar page-builder driven themes).is_in_stock / is_purchasable / backorders_allowed / subscribers so backorder vs. waitlist conflicts are immediately visible.wp_mail() works on this site (surfaces PHPMailer error string on failure).WT_WAITLIST_VERSION constant that still reported 0.1.0 in cached environments.<style> block in the unsubscribe page with wp_register_style() + wp_print_styles() (WP guideline compliance).{prefix}_waitlist_subscriptions, {prefix}_waitlist_email_log).[wt_waitlist] as fallback.