FunnelKit Cart adds a beautiful sliding cart to your WooCommerce store. Let the buyers add items, edit quantity and add upsells on the side cart.
Category Scores
Top Issues by Category
maintainability380
i18n232
security121
Issues Details
740 issues found in latest scan
Global variables defined by a theme/plugin should start with the theme/plugin prefix. Found: "$_product".
The $text parameter must be a single text string literal. Found: $_product->get_id()
PHP file should prevent direct access. Add a check like: if ( ! defined( 'ABSPATH' ) ) exit;
Processing form data without nonce verification.
Mismatched text domain. Expected 'cart-for-woocommerce' but got 'woocommerce'.
$_GET['currency'] not unslashed before sanitization. Use wp_unslash() or similar
Processing form data without nonce verification.
Direct database call without caching detected. Consider using wp_cache_get() / wp_cache_set() or wp_cache_delete().
All output should be run through an escaping function (see the Security sections in the WordPress Developer Handbooks), found '$content'.
Detected usage of a non-sanitized input variable: $_POST['data']
Hook names invoked by a theme/plugin should start with the theme/plugin prefix. Found: "active_plugins".
Use placeholders and $wpdb->prepare(); found interpolated variable $query at "$query "
Unescaped parameter $table_name used in $wpdb->get_results()\n$table_name assigned unsafely at line 284.
All output should be run through an escaping function (like esc_html_e() or esc_attr_e()), found '_e'.
strip_tags() is discouraged. Use the more comprehensive wp_strip_all_tags() instead.
date() is affected by runtime timezone changes which can cause date/time to be incorrectly displayed. Use gmdate() instead.
error_log() found. Debug code should not normally be used in production.
Detected usage of a possibly undefined superglobal array index: $_SERVER['HTTP_HOST']. Check that the array index exists before using it.
load_plugin_textdomain() has been discouraged since WordPress version 4.6. When your plugin is hosted on WordPress.org, you no longer need to manually include this function call for translations under your plugin slug. WordPress will automatically load the translations for you as needed.
Unescaped parameter $query used in $wpdb->query()\n$query assigned unsafely at line 212.
Attempting a database schema change is discouraged.
Replacement variables found, but no valid placeholders found in the query.
| Code | Type | Message | Count |
|---|---|---|---|
| WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedVariableFound | WARNING | Global variables defined by a theme/plugin should start with the theme/plugin prefix. Found: "$_product". | 289 |
| WordPress.WP.I18n.MissingArgDomain | ERROR | Missing $domain parameter in function call to __(). | 101 |
| WordPress.WP.I18n.NonSingularStringLiteralText | ERROR | The $text parameter must be a single text string literal. Found: $_product->get_id() | 98 |
| missing_direct_file_access_protection | ERROR | PHP file should prevent direct access. Add a check like: if ( ! defined( 'ABSPATH' ) ) exit; | 53 |
| WordPress.Security.NonceVerification.Missing | WARNING | Processing form data without nonce verification. | 51 |
| WordPress.WP.I18n.TextDomainMismatch | ERROR | Mismatched text domain. Expected 'cart-for-woocommerce' but got 'woocommerce'. | 32 |
| WordPress.Security.ValidatedSanitizedInput.MissingUnslash | WARNING | $_GET['currency'] not unslashed before sanitization. Use wp_unslash() or similar | 25 |
| WordPress.DB.DirectDatabaseQuery.DirectQuery | WARNING | Use of a direct database call is discouraged. | 13 |
| WordPress.Security.NonceVerification.Recommended | WARNING | Processing form data without nonce verification. | 12 |
| WordPress.DB.DirectDatabaseQuery.NoCaching | WARNING | Direct database call without caching detected. Consider using wp_cache_get() / wp_cache_set() or wp_cache_delete(). | 11 |
| WordPress.Security.EscapeOutput.OutputNotEscaped | ERROR | All output should be run through an escaping function (see the Security sections in the WordPress Developer Handbooks), found '$content'. | 9 |
| WordPress.Security.ValidatedSanitizedInput.InputNotSanitized | WARNING | Detected usage of a non-sanitized input variable: $_POST['data'] | 8 |
| WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedHooknameFound | WARNING | Hook names invoked by a theme/plugin should start with the theme/plugin prefix. Found: "active_plugins". | 6 |
| WordPress.DB.PreparedSQL.InterpolatedNotPrepared | WARNING | Use placeholders and $wpdb->prepare(); found interpolated variable $query at "$query " | 4 |
| PluginCheck.Security.DirectDB.UnescapedDBParameter | WARNING | Unescaped parameter $table_name used in $wpdb->get_results()\n$table_name assigned unsafely at line 284. | 3 |
| WordPress.Security.EscapeOutput.UnsafePrintingFunction | ERROR | All output should be run through an escaping function (like esc_html_e() or esc_attr_e()), found '_e'. | 3 |
| WordPress.WP.AlternativeFunctions.strip_tags_strip_tags | ERROR | strip_tags() is discouraged. Use the more comprehensive wp_strip_all_tags() instead. | 3 |
| WordPress.DB.PreparedSQL.NotPrepared | ERROR | Use placeholders and $wpdb->prepare(); found $query | 2 |
| WordPress.DateTime.RestrictedFunctions.date_date | ERROR | date() is affected by runtime timezone changes which can cause date/time to be incorrectly displayed. Use gmdate() instead. | 2 |
| WordPress.PHP.DevelopmentFunctions.error_log_error_log | WARNING | error_log() found. Debug code should not normally be used in production. | 2 |
| WordPress.Security.ValidatedSanitizedInput.InputNotValidated | WARNING | Detected usage of a possibly undefined superglobal array index: $_SERVER['HTTP_HOST']. Check that the array index exists before using it. | 2 |
| PluginCheck.CodeAnalysis.DiscouragedFunctions.load_plugin_textdomainFound | WARNING | load_plugin_textdomain() has been discouraged since WordPress version 4.6. When your plugin is hosted on WordPress.org, you no longer need to manually include this function call for translations under your plugin slug. WordPress will automatically load the translations for you as needed. | 1 |
| PluginCheck.Security.DirectDB.UnescapedDBParameter | ERROR | Unescaped parameter $query used in $wpdb->query()\n$query assigned unsafely at line 212. | 1 |
| WordPress.DB.DirectDatabaseQuery.SchemaChange | WARNING | Attempting a database schema change is discouraged. | 1 |
| WordPress.DB.PreparedSQLPlaceholders.UnfinishedPrepare | WARNING | Replacement variables found, but no valid placeholders found in the query. | 1 |
Latest Snapshot
Findings
740
Errors
306
Warnings
434
Score History
First score snapshot
First scan completed Jun 20, 2026
v1.9.1.2 · Plugin Check 2.0.0 · Model 2026.06-mvp-static-v2
Jun 20, 2026
v1.9.1.2
30
Latest
- Findings
- 740
- Errors
- 306
- Warnings
- 434
- Plugin Check
- 2.0.0
- Model
- 2026.06-mvp-static-v2
| Scan | Score | Findings | Errors | Warnings | Plugin | Plugin Check | Model |
|---|---|---|---|---|---|---|---|
| Jun 20, 2026Latest | 30 | 740 | 306 | 434 | v1.9.1.2 | 2.0.0 | 2026.06-mvp-static-v2 |