Increase average order value by letting your customers purchase additional options on your products.
Category Scores
Top Issues by Category
maintainability1,940
i18n330
security244
Issues Details
2,529 issues found in latest scan
Global variables defined by a theme/plugin should start with the theme/plugin prefix. Found: "$_defaults".
Mismatched text domain. Expected 'yith-woocommerce-product-add-ons' but got 'woocommerce'.
Hook names invoked by a theme/plugin should start with the theme/plugin prefix. Found: "'woocommerce_settings_' . sanitize_title( $field['id'] )".
PHP file should prevent direct access. Add a check like: if ( ! defined( 'ABSPATH' ) ) exit;
Detected usage of a non-sanitized input variable: $_GET['term']
$_POST['currency'] not unslashed before sanitization. Use wp_unslash() or similar
All output should be run through an escaping function (see the Security sections in the WordPress Developer Handbooks), found '$block'.
Direct database call without caching detected. Consider using wp_cache_get() / wp_cache_set() or wp_cache_delete().
Use placeholders and $wpdb->prepare(); found interpolated variable $addons_table_name at "SHOW TABLES LIKE '$addons_table_name'"
Functions declared in the global namespace by a theme/plugin should start with the theme/plugin prefix. Found: "YIT_Plugin_Licence".
Unescaped parameter $addons_table_name used in $wpdb->get_var()\n$addons_table_name assigned unsafely at line 246.
Classes declared by a theme/plugin should start with the theme/plugin prefix. Found: "YIT_Ajax".
Attempting a database schema change is discouraged.
Detected usage of a possibly undefined superglobal array index: $_POST['data']['options_default_price']. Check that the array index exists before using it.
Hook names invoked by a theme/plugin should start with the theme/plugin prefix. Found: "$deprecated_filters[ $filter ]".
Global constants defined by a theme/plugin should start with the theme/plugin prefix. Found: "DOING_YITH_BH_ONBOARDING".
Processing form data without nonce verification.
Use placeholders and $wpdb->prepare(); found $alter_block_query
All output should be run through an escaping function (see the Security sections in the WordPress Developer Handbooks), found '$response'.
Processing form data without nonce verification.
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.
The plugin name includes a restricted term. Your chosen plugin name - "YITH WooCommerce Product Add-Ons" - 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.
Unescaped parameter $alter_block_query used in $wpdb->query()\n$alter_block_query assigned unsafely at line 364.
| Code | Type | Message | Count |
|---|---|---|---|
| WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedVariableFound | WARNING | Global variables defined by a theme/plugin should start with the theme/plugin prefix. Found: "$_defaults". | 1,643 |
| WordPress.WP.I18n.TextDomainMismatch | ERROR | Mismatched text domain. Expected 'yith-woocommerce-product-add-ons' but got 'woocommerce'. | 321 |
| WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedHooknameFound | WARNING | Hook names invoked by a theme/plugin should start with the theme/plugin prefix. Found: "'woocommerce_settings_' . sanitize_title( $field['id'] )". | 84 |
| missing_direct_file_access_protection | ERROR | PHP file should prevent direct access. Add a check like: if ( ! defined( 'ABSPATH' ) ) exit; | 69 |
| WordPress.Security.ValidatedSanitizedInput.InputNotSanitized | WARNING | Detected usage of a non-sanitized input variable: $_GET['term'] | 60 |
| WordPress.Security.ValidatedSanitizedInput.MissingUnslash | WARNING | $_POST['currency'] not unslashed before sanitization. Use wp_unslash() or similar | 58 |
| WordPress.Security.EscapeOutput.OutputNotEscaped | ERROR | All output should be run through an escaping function (see the Security sections in the WordPress Developer Handbooks), found '$block'. | 44 |
| WordPress.DB.DirectDatabaseQuery.DirectQuery | WARNING | Use of a direct database call is discouraged. | 37 |
| WordPress.DB.DirectDatabaseQuery.NoCaching | WARNING | Direct database call without caching detected. Consider using wp_cache_get() / wp_cache_set() or wp_cache_delete(). | 35 |
| WordPress.DB.PreparedSQL.InterpolatedNotPrepared | WARNING | Use placeholders and $wpdb->prepare(); found interpolated variable $addons_table_name at "SHOW TABLES LIKE '$addons_table_name'" | 35 |
| WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedFunctionFound | WARNING | Functions declared in the global namespace by a theme/plugin should start with the theme/plugin prefix. Found: "YIT_Plugin_Licence". | 32 |
| PluginCheck.Security.DirectDB.UnescapedDBParameter | WARNING | Unescaped parameter $addons_table_name used in $wpdb->get_var()\n$addons_table_name assigned unsafely at line 246. | 23 |
| WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedClassFound | WARNING | Classes declared by a theme/plugin should start with the theme/plugin prefix. Found: "YIT_Ajax". | 16 |
| WordPress.DB.DirectDatabaseQuery.SchemaChange | WARNING | Attempting a database schema change is discouraged. | 9 |
| WordPress.Security.ValidatedSanitizedInput.InputNotValidated | WARNING | Detected usage of a possibly undefined superglobal array index: $_POST['data']['options_default_price']. Check that the array index exists before using it. | 7 |
| WordPress.NamingConventions.PrefixAllGlobals.DynamicHooknameFound | WARNING | Hook names invoked by a theme/plugin should start with the theme/plugin prefix. Found: "$deprecated_filters[ $filter ]". | 6 |
| WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedConstantFound | WARNING | Global constants defined by a theme/plugin should start with the theme/plugin prefix. Found: "DOING_YITH_BH_ONBOARDING". | 6 |
| WordPress.Security.NonceVerification.Missing | WARNING | Processing form data without nonce verification. | 6 |
| WordPress.WP.I18n.MissingArgDomain | ERROR | Missing $domain parameter in function call to __(). | 6 |
| WordPress.DB.PreparedSQL.NotPrepared | ERROR | Use placeholders and $wpdb->prepare(); found $alter_block_query | 3 |
| WordPress.Security.EscapeOutput.ExceptionNotEscaped | ERROR | All output should be run through an escaping function (see the Security sections in the WordPress Developer Handbooks), found '$response'. | 3 |
| WordPress.Security.NonceVerification.Recommended | WARNING | Processing form data without nonce verification. | 3 |
| 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. | 3 |
| trademarked_term | WARNING | The plugin name includes a restricted term. Your chosen plugin name - "YITH WooCommerce Product Add-Ons" - 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. | 3 |
| PluginCheck.Security.DirectDB.UnescapedDBParameter | ERROR | Unescaped parameter $alter_block_query used in $wpdb->query()\n$alter_block_query assigned unsafely at line 364. | 2 |
Latest Snapshot
Findings
2,529
Errors
460
Warnings
2,069
Score History
First score snapshot
First scan completed Jun 20, 2026
v4.31.0 · Plugin Check 2.0.0 · Model 2026.06-mvp-static-v2
Jun 20, 2026
v4.31.0
24
Latest
- Findings
- 2,529
- Errors
- 460
- Warnings
- 2,069
- Plugin Check
- 2.0.0
- Model
- 2026.06-mvp-static-v2
| Scan | Score | Findings | Errors | Warnings | Plugin | Plugin Check | Model |
|---|---|---|---|---|---|---|---|
| Jun 20, 2026Latest | 24 | 2,529 | 460 | 2,069 | v4.31.0 | 2.0.0 | 2026.06-mvp-static-v2 |