Back in stock notifications for WooCommerce Security & Risk Analysis

wordpress.org/plugins/back-in-stock-notifications-for-woocommerce

Let customers subscribe for back in stock alerts on out-of-stock WooCommerce products — customisable form, personalised emails, and live preview.

10 active installs v1.0.3 PHP 8.3+ WP 6.4+ Updated Feb 21, 2026
back-in-stockback-in-stock-notificationsout-of-stockwoocommercewoocommerce-notifications
100
A · Safe
CVEs total0
Unpatched0
Last CVENever
Safety Verdict

Is Back in stock notifications for WooCommerce Safe to Use in 2026?

Generally Safe

Score 100/100

Back in stock notifications for WooCommerce has no known CVEs and is actively maintained. It's a solid choice for most WordPress installations.

No known CVEs Updated 2mo ago
Risk Assessment

The plugin "back-in-stock-notifications-for-woocommerce" v1.0.3 exhibits a concerning security posture primarily due to a large number of unprotected AJAX handlers. While the use of prepared statements for SQL queries and a high percentage of properly escaped outputs are positive signs, the complete absence of authentication checks on all seven identified AJAX entry points presents a significant risk. Any user, authenticated or not, can potentially trigger these handlers, opening the door to various attacks. The taint analysis shows no critical or high-severity unsanitized paths, which is a positive indicator. Furthermore, the plugin has no recorded vulnerability history, suggesting a generally stable past. However, the substantial attack surface without proper authorization mechanisms outweighs these strengths, making it a target for unauthorized actions if these handlers are not adequately secured within their logic.

Key Concerns

  • Unprotected AJAX handlers
  • Dangerous functions used (unserialize)
  • Dangerous functions used (ini_set, set_time_limit)
  • One file operation with potential risk
Vulnerabilities
None known

Back in stock notifications for WooCommerce Security Vulnerabilities

No known vulnerabilities — this is a good sign.
Version History

Back in stock notifications for WooCommerce Release Timeline

v1.0.3Current
v1.0.2
v1.0.1
v1.0.0
Code Analysis
Analyzed Apr 16, 2026

Back in stock notifications for WooCommerce Code Analysis

Dangerous Functions
4
Raw SQL Queries
0
74 prepared
Unescaped Output
14
231 escaped
Nonce Checks
15
Capability Checks
6
File Operations
1
External Requests
5
Bundled Libraries
0

Dangerous Functions Found

ini_setif ( false !== @ini_set( 'memory_limit', $filtered_limit ) ) {packages/action-scheduler/classes/ActionScheduler_Compatibility.php:66
ini_setif ( false !== @ini_set( 'memory_limit', $wp_max_limit ) ) {packages/action-scheduler/classes/ActionScheduler_Compatibility.php:72
set_time_limit@set_time_limit( $limit ); // phpcs:ignore WordPress.PHP.NoSilencedErrors.Discouragedpackages/action-scheduler/classes/ActionScheduler_Compatibility.php:106
unserialize$schedule = unserialize( $data->schedule ); // phpcs:ignore WordPress.PHP.DiscouragedPHPFunctions.sepackages/action-scheduler/classes/data-stores/ActionScheduler_DBStore.php:219

SQL Query Safety

100% prepared74 total queries

Output Escaping

94% escaped245 total outputs
Data Flows · Security
2 unsanitized

Data Flow Analysis

6 flows2 with unsanitized paths
open_data_tab_by_default (admin/class-wsnm-admin.php:443)
Source (user input) Sink (dangerous op) Sanitizer Transform Unsanitized Sanitized
Attack Surface
7 unprotected

Back in stock notifications for WooCommerce Attack Surface

Entry Points7
Unprotected7

AJAX Handlers 7

authwp_ajax_wsnm_get_variationsincludes/class-wsnm.php:155
authwp_ajax_wsnm_send_test_emailincludes/class-wsnm.php:156
authwp_ajax_wsnm_hubspot_check_connectionincludes/class-wsnm.php:160
authwp_ajax_wsnm_open_popupincludes/class-wsnm.php:187
noprivwp_ajax_wsnm_open_popupincludes/class-wsnm.php:188
authwp_ajax_wsnm_save_requestincludes/class-wsnm.php:189
noprivwp_ajax_wsnm_save_requestincludes/class-wsnm.php:190
WordPress Hooks 114
actionplugins_loadedincludes/class-wsnm.php:109
actionadmin_enqueue_scriptsincludes/class-wsnm.php:127
actionadmin_enqueue_scriptsincludes/class-wsnm.php:128
actioninitincludes/class-wsnm.php:129
actionadd_meta_boxesincludes/class-wsnm.php:130
actionmanage_wsnm_notify_me_posts_custom_columnincludes/class-wsnm.php:131
actionrestrict_manage_postsincludes/class-wsnm.php:132
actionpre_get_postsincludes/class-wsnm.php:133
actionwoocommerce_product_data_panelsincludes/class-wsnm.php:134
actionwoocommerce_process_product_metaincludes/class-wsnm.php:135
actionadmin_footerincludes/class-wsnm.php:136
filterbulk_actions-edit-wsnm_notify_meincludes/class-wsnm.php:139
filterhandle_bulk_actions-edit-wsnm_notify_meincludes/class-wsnm.php:140
filtermanage_wsnm_notify_me_posts_columnsincludes/class-wsnm.php:141
filterwoocommerce_product_data_tabsincludes/class-wsnm.php:142
actionadmin_menuincludes/class-wsnm.php:146
actionadmin_menuincludes/class-wsnm.php:147
actionadmin_menuincludes/class-wsnm.php:148
actioninitincludes/class-wsnm.php:149
actionadmin_noticesincludes/class-wsnm.php:150
actionafter_setup_themeincludes/class-wsnm.php:151
actionadmin_enqueue_scriptsincludes/class-wsnm.php:152
actionadmin_enqueue_scriptsincludes/class-wsnm.php:153
actionadmin_enqueue_scriptsincludes/class-wsnm.php:154
actionadmin_enqueue_scriptsincludes/class-wsnm.php:159
actioninitincludes/class-wsnm.php:163
actionwsnm_run_manuallyincludes/class-wsnm.php:164
actionwsnm_run_automaticallyincludes/class-wsnm.php:165
actionwsnm_new_manually_notificationincludes/class-wsnm.php:168
actionadmin_noticesincludes/class-wsnm.php:170
actionwp_enqueue_scriptsincludes/class-wsnm.php:186
actionwoocommerce_after_shop_loop_itemincludes/class-wsnm.php:191
filterwoocommerce_get_availabilityincludes/class-wsnm.php:192
filterwsnm-text-ctaincludes/class-wsnm.php:193
filterwsnm-modal-titleincludes/class-wsnm.php:194
actionplugins_loadedpackages/action-scheduler/action-scheduler.php:33
actionplugins_loadedpackages/action-scheduler/action-scheduler.php:36
actionwoocommerce_admin_status_content_action-schedulerpackages/action-scheduler/classes/ActionScheduler_AdminView.php:37
actionwoocommerce_system_status_reportpackages/action-scheduler/classes/ActionScheduler_AdminView.php:38
filterwoocommerce_admin_status_tabspackages/action-scheduler/classes/ActionScheduler_AdminView.php:39
actionadmin_menupackages/action-scheduler/classes/ActionScheduler_AdminView.php:42
actioncurrent_screenpackages/action-scheduler/classes/ActionScheduler_AdminView.php:44
filteraction_scheduler_store_classpackages/action-scheduler/classes/ActionScheduler_DataController.php:167
filteraction_scheduler_logger_classpackages/action-scheduler/classes/ActionScheduler_DataController.php:168
actiondeactivate_pluginpackages/action-scheduler/classes/ActionScheduler_DataController.php:169
actionaction_scheduler/progress_tickpackages/action-scheduler/classes/ActionScheduler_DataController.php:174
actionshutdownpackages/action-scheduler/classes/ActionScheduler_FatalErrorMonitor.php:19
actionaction_scheduler_before_executepackages/action-scheduler/classes/ActionScheduler_FatalErrorMonitor.php:20
actionaction_scheduler_after_executepackages/action-scheduler/classes/ActionScheduler_FatalErrorMonitor.php:21
actionaction_scheduler_execution_ignoredpackages/action-scheduler/classes/ActionScheduler_FatalErrorMonitor.php:22
actionaction_scheduler_failed_executionpackages/action-scheduler/classes/ActionScheduler_FatalErrorMonitor.php:23
actionaction_scheduler/created_tablepackages/action-scheduler/classes/ActionScheduler_ListTable.php:534
filtercron_schedulespackages/action-scheduler/classes/ActionScheduler_QueueRunner.php:51
actionshutdownpackages/action-scheduler/classes/ActionScheduler_QueueRunner.php:74
actionpre_get_commentspackages/action-scheduler/classes/ActionScheduler_WPCommentCleaner.php:44
actionwp_count_commentspackages/action-scheduler/classes/ActionScheduler_WPCommentCleaner.php:45
actioncomment_feed_wherepackages/action-scheduler/classes/ActionScheduler_WPCommentCleaner.php:46
actionload-tools_page_action-schedulerpackages/action-scheduler/classes/ActionScheduler_WPCommentCleaner.php:49
actionload-woocommerce_page_wc-statuspackages/action-scheduler/classes/ActionScheduler_WPCommentCleaner.php:50
actionadmin_noticespackages/action-scheduler/classes/ActionScheduler_WPCommentCleaner.php:91
actionaction_scheduler_before_executepackages/action-scheduler/classes/WP_CLI/ActionScheduler_WPCLI_QueueRunner.php:79
actionaction_scheduler_after_executepackages/action-scheduler/classes/WP_CLI/ActionScheduler_WPCLI_QueueRunner.php:80
actionaction_scheduler_failed_executionpackages/action-scheduler/classes/WP_CLI/ActionScheduler_WPCLI_QueueRunner.php:81
actionaction_scheduler/migrate_action_dry_runpackages/action-scheduler/classes/WP_CLI/Migration_Command.php:126
actionaction_scheduler/no_action_to_migratepackages/action-scheduler/classes/WP_CLI/Migration_Command.php:129
actionaction_scheduler/migrate_action_failedpackages/action-scheduler/classes/WP_CLI/Migration_Command.php:132
actionaction_scheduler/migrate_action_incompletepackages/action-scheduler/classes/WP_CLI/Migration_Command.php:135
actionaction_scheduler/migrated_actionpackages/action-scheduler/classes/WP_CLI/Migration_Command.php:138
actionaction_scheduler/migration_batch_startingpackages/action-scheduler/classes/WP_CLI/Migration_Command.php:141
actionaction_scheduler/migration_batch_completepackages/action-scheduler/classes/WP_CLI/Migration_Command.php:144
actioninitpackages/action-scheduler/classes/abstracts/ActionScheduler.php:152
actioninitpackages/action-scheduler/classes/abstracts/ActionScheduler.php:153
actioninitpackages/action-scheduler/classes/abstracts/ActionScheduler.php:154
actioninitpackages/action-scheduler/classes/abstracts/ActionScheduler.php:155
actionaction_scheduler/migration_completepackages/action-scheduler/classes/abstracts/ActionScheduler.php:184
actionaction_scheduler_canceled_actionpackages/action-scheduler/classes/abstracts/ActionScheduler_Logger.php:50
actionaction_scheduler_begin_executepackages/action-scheduler/classes/abstracts/ActionScheduler_Logger.php:51
actionaction_scheduler_after_executepackages/action-scheduler/classes/abstracts/ActionScheduler_Logger.php:52
actionaction_scheduler_failed_executionpackages/action-scheduler/classes/abstracts/ActionScheduler_Logger.php:53
actionaction_scheduler_failed_actionpackages/action-scheduler/classes/abstracts/ActionScheduler_Logger.php:54
actionaction_scheduler_unexpected_shutdownpackages/action-scheduler/classes/abstracts/ActionScheduler_Logger.php:55
actionaction_scheduler_reset_actionpackages/action-scheduler/classes/abstracts/ActionScheduler_Logger.php:56
actionaction_scheduler_execution_ignoredpackages/action-scheduler/classes/abstracts/ActionScheduler_Logger.php:57
actionaction_scheduler_failed_fetch_actionpackages/action-scheduler/classes/abstracts/ActionScheduler_Logger.php:58
actionaction_scheduler_failed_to_schedule_next_instancepackages/action-scheduler/classes/abstracts/ActionScheduler_Logger.php:59
actionaction_scheduler_bulk_cancel_actionspackages/action-scheduler/classes/abstracts/ActionScheduler_Logger.php:60
actionaction_scheduler_stored_actionpackages/action-scheduler/classes/abstracts/ActionScheduler_Logger.php:64
actionaction_scheduler_deleted_actionpackages/action-scheduler/classes/data-stores/ActionScheduler_DBLogger.php:112
actionaction_scheduler/created_tablepackages/action-scheduler/classes/data-stores/ActionScheduler_HybridStore.php:56
filtercomments_clausespackages/action-scheduler/classes/data-stores/ActionScheduler_wpCommentLogger.php:102
actionaction_scheduler_before_process_queuepackages/action-scheduler/classes/data-stores/ActionScheduler_wpCommentLogger.php:219
actionaction_scheduler_after_process_queuepackages/action-scheduler/classes/data-stores/ActionScheduler_wpCommentLogger.php:220
actionpre_get_commentspackages/action-scheduler/classes/data-stores/ActionScheduler_wpCommentLogger.php:224
actionwp_count_commentspackages/action-scheduler/classes/data-stores/ActionScheduler_wpCommentLogger.php:225
actioncomment_feed_wherepackages/action-scheduler/classes/data-stores/ActionScheduler_wpCommentLogger.php:226
actionwp_insert_commentpackages/action-scheduler/classes/data-stores/ActionScheduler_wpCommentLogger.php:229
actionwp_set_comment_statuspackages/action-scheduler/classes/data-stores/ActionScheduler_wpCommentLogger.php:230
filterwp_insert_post_datapackages/action-scheduler/classes/data-stores/ActionScheduler_wpPostStore.php:81
filterpre_wp_unique_post_slugpackages/action-scheduler/classes/data-stores/ActionScheduler_wpPostStore.php:82
filterpre_wp_unique_post_slugpackages/action-scheduler/classes/data-stores/ActionScheduler_wpPostStore.php:518
filterwp_insert_post_datapackages/action-scheduler/classes/data-stores/ActionScheduler_wpPostStore.php:976
filterpre_wp_unique_post_slugpackages/action-scheduler/classes/data-stores/ActionScheduler_wpPostStore.php:977
filteraction_scheduler_migration_dependencies_metpackages/action-scheduler/classes/data-stores/ActionScheduler_wpPostStore.php:1064
actionadmin_noticespackages/action-scheduler/classes/migration/Controller.php:155
filteraction_scheduler_store_classpackages/action-scheduler/classes/migration/Controller.php:169
filteraction_scheduler_logger_classpackages/action-scheduler/classes/migration/Controller.php:170
actioninitpackages/action-scheduler/classes/migration/Controller.php:171
actionwp_loadedpackages/action-scheduler/classes/migration/Controller.php:172
actionload-tools_page_action-schedulerpackages/action-scheduler/classes/migration/Controller.php:175
actionload-woocommerce_page_wc-statuspackages/action-scheduler/classes/migration/Controller.php:176
actionaction_scheduler_before_schema_updatepackages/action-scheduler/classes/schema/ActionScheduler_LoggerSchema.php:28
actionaction_scheduler_before_schema_updatepackages/action-scheduler/classes/schema/ActionScheduler_StoreSchema.php:33
actionplugins_loadedwoo-stock-notify-me.php:89
actionbefore_woocommerce_initwoo-stock-notify-me.php:94
Maintenance & Trust

Back in stock notifications for WooCommerce Maintenance & Trust

Maintenance Signals

WordPress version tested6.9.4
Last updatedFeb 21, 2026
PHP min version8.3
Downloads1K

Community Trust

Rating100/100
Number of ratings1
Active installs10
Developer Profile

Back in stock notifications for WooCommerce Developer Profile

Simple Solutions

2 plugins · 10 total installs

89
trust score
Avg Security Score
93/100
Avg Patch Time
30 days
View full developer profile
Detection Fingerprints

How We Detect Back in stock notifications for WooCommerce

Patterns used to identify this plugin on WordPress sites during automated security audits and web crawling.

Asset Fingerprints

Asset Paths
/wp-content/plugins/back-in-stock-notifications-for-woocommerce/public/css/wsnm.css/wp-content/plugins/back-in-stock-notifications-for-woocommerce/public/js/wsnm.js/wp-content/plugins/back-in-stock-notifications-for-woocommerce/admin/css/wsnm-admin.css/wp-content/plugins/back-in-stock-notifications-for-woocommerce/admin/js/wsnm-admin.js
Script Paths
public/js/wsnm.jsadmin/js/wsnm-admin.js
Version Parameters
back-in-stock-notifications-for-woocommerce/public/css/wsnm.css?ver=back-in-stock-notifications-for-woocommerce/public/js/wsnm.js?ver=back-in-stock-notifications-for-woocommerce/admin/css/wsnm-admin.css?ver=back-in-stock-notifications-for-woocommerce/admin/js/wsnm-admin.js?ver=

HTML / DOM Fingerprints

CSS Classes
wsnm-notification-formwsnm-notification-submitwsnm-subscription-form-wrapperwsnm-admin-wrapwsnm-product-list-itemwsnm-product-titlewsnm-notification-countwsnm-email-template-preview+3 more
Data Attributes
data-product-iddata-wsnm-product-iddata-wsnm-nonce
JS Globals
wsnm_ajax_objectWSNM_Admin
REST Endpoints
/wp-json/wsnm/v1/subscribe/wp-json/wsnm/v1/get_notifications/wp-json/wsnm/v1/delete_notification
Shortcode Output
[wsnm_subscribe_form]
FAQ

Frequently Asked Questions about Back in stock notifications for WooCommerce