A powerful way to update your WooCommerce product catalog. Finally, no more tedious clicking through countless pages!
Category Scores
Top Issues by Category
security215
maintainability90
Issues Details
368 issues found in latest scan
All output should be run through an escaping function (like esc_html_e() or esc_attr_e()), found '_e'.
All output should be run through an escaping function (see the Security sections in the WordPress Developer Handbooks), found '"<option value='$value' class='pwbe-dropdown-visibility-$option[visibility]'>$option[name]</option>\n"'.
Global variables defined by a theme/plugin should start with the theme/plugin prefix. Found: "$categories".
Mismatched text domain. Expected 'pw-bulk-edit' but got 'pw-woocommerce-coupons-plus'.
Use placeholders and $wpdb->prepare(); found interpolated variable $common_joins at \t\t\t\t$common_joins\n
A function call to __() with texts containing placeholders was found, but was not accompanied by a "translators:" comment on the line above to clarify the meaning of the placeholders.
Hook names invoked by a theme/plugin should start with the theme/plugin prefix. Found: "'woocommerce_get_sections_' . $this->id".
Direct database call without caching detected. Consider using wp_cache_get() / wp_cache_set() or wp_cache_delete().
Detected usage of a non-sanitized input variable: $_POST['fields']
Detected usage of a possibly undefined superglobal array index: $_POST['name']. Check that the array index exists before using it.
$_POST['fields'] not unslashed before sanitization. Use wp_unslash() or similar
Unescaped parameter $common_joins used in $wpdb->query()\n$common_joins assigned unsafely at line 107.
Attempting a database schema change is discouraged.
Use placeholders and $wpdb->prepare(); found $variations_sql
Processing form data without nonce verification.
In footer ($in_footer) is not set explicitly wp_enqueue_script; It is recommended to load scripts in the footer. Please set this value to `true` to load it in the footer, or explicitly `false` if it should be loaded in the header.
Incorrect number of replacements passed to $wpdb->prepare(). Found 1 replacement parameters, expected 2.
Replacement variables found, but no valid placeholders found in the query.
Classes declared by a theme/plugin should start with the theme/plugin prefix. Found: "PW_Bulk_Edit".
The plugin name includes a restricted term. Your chosen plugin name - "PW WooCommerce Bulk Edit" - contains the restricted term "woocommerce" which cannot be used within in your plugin name, unless your plugin name contains one of the allowed patterns: "for woocommerce", "with woocommerce", "using woocommerce", or "and woocommerce". The term must still not appear anywhere else in your name.
Plugin folders are deleted when upgraded. Do not save data to the plugin folder using file_put_contents(). Detected usage of function plugin_dir_path(). Use wp_upload_dir() to get the uploads directory path or save to the database instead.
Accessing the database directly should be avoided. Please use the $wpdb object and associated functions instead. Found: mysqli_error.
| Code | Type | Message | Count |
|---|---|---|---|
| WordPress.Security.EscapeOutput.UnsafePrintingFunction | ERROR | All output should be run through an escaping function (like esc_html_e() or esc_attr_e()), found '_e'. | 103 |
| WordPress.Security.EscapeOutput.OutputNotEscaped | ERROR | All output should be run through an escaping function (see the Security sections in the WordPress Developer Handbooks), found '"<option value='$value' class='pwbe-dropdown-visibility-$option[visibility]'>$option[name]</option>\n"'. | 43 |
| WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedVariableFound | WARNING | Global variables defined by a theme/plugin should start with the theme/plugin prefix. Found: "$categories". | 41 |
| WordPress.WP.I18n.TextDomainMismatch | ERROR | Mismatched text domain. Expected 'pw-bulk-edit' but got 'pw-woocommerce-coupons-plus'. | 38 |
| WordPress.DB.PreparedSQL.InterpolatedNotPrepared | WARNING | Use placeholders and $wpdb->prepare(); found interpolated variable $common_joins at \t\t\t\t$common_joins\n | 31 |
| WordPress.WP.I18n.MissingTranslatorsComment | ERROR | A function call to __() with texts containing placeholders was found, but was not accompanied by a "translators:" comment on the line above to clarify the meaning of the placeholders. | 16 |
| WordPress.DB.DirectDatabaseQuery.DirectQuery | WARNING | Use of a direct database call is discouraged. | 11 |
| WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedHooknameFound | WARNING | Hook names invoked by a theme/plugin should start with the theme/plugin prefix. Found: "'woocommerce_get_sections_' . $this->id". | 11 |
| WordPress.DB.DirectDatabaseQuery.NoCaching | WARNING | Direct database call without caching detected. Consider using wp_cache_get() / wp_cache_set() or wp_cache_delete(). | 9 |
| WordPress.Security.ValidatedSanitizedInput.InputNotSanitized | WARNING | Detected usage of a non-sanitized input variable: $_POST['fields'] | 7 |
| WordPress.Security.ValidatedSanitizedInput.InputNotValidated | WARNING | Detected usage of a possibly undefined superglobal array index: $_POST['name']. Check that the array index exists before using it. | 7 |
| WordPress.Security.ValidatedSanitizedInput.MissingUnslash | WARNING | $_POST['fields'] not unslashed before sanitization. Use wp_unslash() or similar | 7 |
| PluginCheck.Security.DirectDB.UnescapedDBParameter | ERROR | Unescaped parameter $common_joins used in $wpdb->query()\n$common_joins assigned unsafely at line 107. | 4 |
| WordPress.DB.DirectDatabaseQuery.SchemaChange | WARNING | Attempting a database schema change is discouraged. | 4 |
| WordPress.DB.PreparedSQL.NotPrepared | ERROR | Use placeholders and $wpdb->prepare(); found $variations_sql | 4 |
| WordPress.Security.NonceVerification.Missing | WARNING | Processing form data without nonce verification. | 4 |
| WordPress.WP.EnqueuedResourceParameters.NotInFooter | WARNING | In footer ($in_footer) is not set explicitly wp_enqueue_script; It is recommended to load scripts in the footer. Please set this value to `true` to load it in the footer, or explicitly `false` if it should be loaded in the header. | 4 |
| Squiz.PHP.DiscouragedFunctions.Discouraged | WARNING | The use of function ini_set() is discouraged | 3 |
| WordPress.DB.PreparedSQLPlaceholders.ReplacementsWrongNumber | WARNING | Incorrect number of replacements passed to $wpdb->prepare(). Found 1 replacement parameters, expected 2. | 3 |
| WordPress.DB.PreparedSQLPlaceholders.UnfinishedPrepare | WARNING | Replacement variables found, but no valid placeholders found in the query. | 2 |
| WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedClassFound | WARNING | Classes declared by a theme/plugin should start with the theme/plugin prefix. Found: "PW_Bulk_Edit". | 2 |
| trademarked_term | WARNING | The plugin name includes a restricted term. Your chosen plugin name - "PW WooCommerce Bulk Edit" - contains the restricted term "woocommerce" which cannot be used within in your plugin name, unless your plugin name contains one of the allowed patterns: "for woocommerce", "with woocommerce", "using woocommerce", or "and woocommerce". The term must still not appear anywhere else in your name. | 2 |
| Internal.LineEndings.Mixed | WARNING | File has mixed line endings; this may cause incorrect results | 1 |
| PluginCheck.CodeAnalysis.WriteFile.PluginDirectoryWrite | ERROR | Plugin folders are deleted when upgraded. Do not save data to the plugin folder using file_put_contents(). Detected usage of function plugin_dir_path(). Use wp_upload_dir() to get the uploads directory path or save to the database instead. | 1 |
| WordPress.DB.RestrictedFunctions.mysql_mysqli_error | ERROR | Accessing the database directly should be avoided. Please use the $wpdb object and associated functions instead. Found: mysqli_error. | 1 |
Latest Snapshot
Findings
368
Errors
219
Warnings
149
Score History
First score snapshot
First scan completed Jun 20, 2026
v2.141 · Plugin Check 2.0.0 · Model 2026.06-mvp-static-v2
Jun 20, 2026
v2.141
34
Latest
- Findings
- 368
- Errors
- 219
- Warnings
- 149
- Plugin Check
- 2.0.0
- Model
- 2026.06-mvp-static-v2
| Scan | Score | Findings | Errors | Warnings | Plugin | Plugin Check | Model |
|---|---|---|---|---|---|---|---|
| Jun 20, 2026Latest | 34 | 368 | 219 | 149 | v2.141 | 2.0.0 | 2026.06-mvp-static-v2 |