YITH WooCommerce Product Add-Ons

Increase average order value by letting your customers purchase additional options on your products.

v4.31.0YITHEMESUpdated 2026-06-15Added May 20, 201620k+ installs74% rating0% support resolved
24
Score
460
Errors
2,069
Warnings
+0
Change

Category Scores

Security0
Repo97
Performance97
Maintainability0

Top Issues by Category

maintainability1,940
i18n330
security244

Issues Details

2,529 issues found in latest scan

WARNING1,643
WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedVariableFound

Global variables defined by a theme/plugin should start with the theme/plugin prefix. Found: "$_defaults".

ERROR321
WordPress.WP.I18n.TextDomainMismatch

Mismatched text domain. Expected 'yith-woocommerce-product-add-ons' but got 'woocommerce'.

WARNING84
WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedHooknameFound

Hook names invoked by a theme/plugin should start with the theme/plugin prefix. Found: "'woocommerce_settings_' . sanitize_title( $field['id'] )".

ERROR69
missing_direct_file_access_protection

PHP file should prevent direct access. Add a check like: if ( ! defined( 'ABSPATH' ) ) exit;

WARNING60
WordPress.Security.ValidatedSanitizedInput.InputNotSanitized

Detected usage of a non-sanitized input variable: $_GET['term']

WARNING58
WordPress.Security.ValidatedSanitizedInput.MissingUnslash

$_POST['currency'] not unslashed before sanitization. Use wp_unslash() or similar

ERROR44
WordPress.Security.EscapeOutput.OutputNotEscaped

All output should be run through an escaping function (see the Security sections in the WordPress Developer Handbooks), found '$block'.

WARNING37
WordPress.DB.DirectDatabaseQuery.DirectQuery

Use of a direct database call is discouraged.

WARNING35
WordPress.DB.DirectDatabaseQuery.NoCaching

Direct database call without caching detected. Consider using wp_cache_get() / wp_cache_set() or wp_cache_delete().

WARNING35
WordPress.DB.PreparedSQL.InterpolatedNotPrepared

Use placeholders and $wpdb->prepare(); found interpolated variable $addons_table_name at "SHOW TABLES LIKE '$addons_table_name'"

WARNING32
WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedFunctionFound

Functions declared in the global namespace by a theme/plugin should start with the theme/plugin prefix. Found: "YIT_Plugin_Licence".

WARNING23
PluginCheck.Security.DirectDB.UnescapedDBParameter

Unescaped parameter $addons_table_name used in $wpdb->get_var()\n$addons_table_name assigned unsafely at line 246.

WARNING16
WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedClassFound

Classes declared by a theme/plugin should start with the theme/plugin prefix. Found: "YIT_Ajax".

WARNING9
WordPress.DB.DirectDatabaseQuery.SchemaChange

Attempting a database schema change is discouraged.

WARNING7
WordPress.Security.ValidatedSanitizedInput.InputNotValidated

Detected usage of a possibly undefined superglobal array index: $_POST['data']['options_default_price']. Check that the array index exists before using it.

WARNING6
WordPress.NamingConventions.PrefixAllGlobals.DynamicHooknameFound

Hook names invoked by a theme/plugin should start with the theme/plugin prefix. Found: "$deprecated_filters[ $filter ]".

WARNING6
WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedConstantFound

Global constants defined by a theme/plugin should start with the theme/plugin prefix. Found: "DOING_YITH_BH_ONBOARDING".

WARNING6
WordPress.Security.NonceVerification.Missing

Processing form data without nonce verification.

ERROR6
WordPress.WP.I18n.MissingArgDomain

Missing $domain parameter in function call to __().

ERROR3
WordPress.DB.PreparedSQL.NotPrepared

Use placeholders and $wpdb->prepare(); found $alter_block_query

ERROR3
WordPress.Security.EscapeOutput.ExceptionNotEscaped

All output should be run through an escaping function (see the Security sections in the WordPress Developer Handbooks), found '$response'.

WARNING3
WordPress.Security.NonceVerification.Recommended

Processing form data without nonce verification.

ERROR3
WordPress.WP.I18n.MissingTranslatorsComment

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.

WARNING3
trademarked_term

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.

ERROR2
PluginCheck.Security.DirectDB.UnescapedDBParameter

Unescaped parameter $alter_block_query used in $wpdb->query()\n$alter_block_query assigned unsafely at line 364.

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

Related Plugins