Create WooCommerce product tables that are searchable, sortable, filterable and mobile responsive. Help customers find and buy products much faster.
Category Scores
Top Issues by Category
maintainability1,822
security1,393
Issues Details
3,408 issues found in latest scan
Global variables defined by a theme/plugin should start with the theme/plugin prefix. Found: "$$arr_key".
All output should be run through an escaping function (see the Security sections in the WordPress Developer Handbooks), found '" #wcpt-{$table_id} .wcpt-left-sidebar.wcpt-navigation {\n'.
Processing form data without nonce verification.
PHP file should prevent direct access. Add a check like: if ( ! defined( 'ABSPATH' ) ) exit;
Mismatched text domain. Expected 'wc-product-table-lite' but got "wc-product-table".
$_GET[$data['id'] . '_' . 'device'] not unslashed before sanitization. Use wp_unslash() or similar
Detected usage of a non-sanitized input variable: $_GET[$data['id'] . '_' . 'device']
No PHP code was found in this file and short open tags are not allowed by this install of PHP. This file may be using short open tags but PHP does not allow them.
All output should be run through an escaping function (like esc_html_e() or esc_attr_e()), found '_e'.
Detected usage of meta_key, possible slow query.
Detected usage of a possibly undefined superglobal array index: $_GET[$data['id'] . '_' . 'device']. Check that the array index exists before using it.
Use placeholders and $wpdb->prepare(); found $exact_query
Direct database call without caching detected. Consider using wp_cache_get() / wp_cache_set() or wp_cache_delete().
rand() is discouraged. Use the far less predictable wp_rand() instead.
Processing form data without nonce verification.
Resource version not set in call to wp_enqueue_script(). This means new versions of the script may not always be loaded due to browser caching.
Unescaped parameter $query used in $wpdb->get_row()\n$query assigned unsafely at line 5078.
Hook names invoked by a theme/plugin should start with the theme/plugin prefix. Found: "formatted_woocommerce_price".
Use placeholders and $wpdb->prepare(); found interpolated variable $andor_op at "(($wpdb->posts.post_title $like_op %s) $andor_op ($wpdb->posts.post_excerpt $like_op %s) $andor_op ($wpdb->posts.post_content $like_op %s))"
error_log() found. Debug code should not normally be used in production.
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.
Possible use of short open tags detected; found: <? echo ucwords($device); ?> devices in th...
date() is affected by runtime timezone changes which can cause date/time to be incorrectly displayed. Use gmdate() instead.
wp_redirect() found. Using wp_safe_redirect(), along with the "allowed_redirect_hosts" filter if needed, can help avoid any chances of malicious redirects within code. It is also important to remember to call exit() after a redirect so that no other unwanted code is executed.
| Code | Type | Message | Count |
|---|---|---|---|
| WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedVariableFound | WARNING | Global variables defined by a theme/plugin should start with the theme/plugin prefix. Found: "$$arr_key". | 1,505 |
| WordPress.Security.EscapeOutput.OutputNotEscaped | ERROR | All output should be run through an escaping function (see the Security sections in the WordPress Developer Handbooks), found '" #wcpt-{$table_id} .wcpt-left-sidebar.wcpt-navigation {\n'. | 925 |
| WordPress.Security.NonceVerification.Recommended | WARNING | Processing form data without nonce verification. | 245 |
| missing_direct_file_access_protection | ERROR | PHP file should prevent direct access. Add a check like: if ( ! defined( 'ABSPATH' ) ) exit; | 200 |
| WordPress.WP.I18n.TextDomainMismatch | ERROR | Mismatched text domain. Expected 'wc-product-table-lite' but got "wc-product-table". | 159 |
| WordPress.Security.ValidatedSanitizedInput.MissingUnslash | WARNING | $_GET[$data['id'] . '_' . 'device'] not unslashed before sanitization. Use wp_unslash() or similar | 73 |
| WordPress.Security.ValidatedSanitizedInput.InputNotSanitized | WARNING | Detected usage of a non-sanitized input variable: $_GET[$data['id'] . '_' . 'device'] | 69 |
| Internal.NoCodeFound | WARNING | No PHP code was found in this file and short open tags are not allowed by this install of PHP. This file may be using short open tags but PHP does not allow them. | 32 |
| WordPress.Security.EscapeOutput.UnsafePrintingFunction | ERROR | All output should be run through an escaping function (like esc_html_e() or esc_attr_e()), found '_e'. | 24 |
| WordPress.DB.SlowDBQuery.slow_db_query_meta_key | WARNING | Detected usage of meta_key, possible slow query. | 18 |
| WordPress.Security.ValidatedSanitizedInput.InputNotValidated | WARNING | Detected usage of a possibly undefined superglobal array index: $_GET[$data['id'] . '_' . 'device']. Check that the array index exists before using it. | 18 |
| WordPress.DB.PreparedSQL.NotPrepared | ERROR | Use placeholders and $wpdb->prepare(); found $exact_query | 13 |
| WordPress.DB.DirectDatabaseQuery.DirectQuery | WARNING | Use of a direct database call is discouraged. | 11 |
| 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.WP.AlternativeFunctions.rand_rand | ERROR | rand() is discouraged. Use the far less predictable wp_rand() instead. | 11 |
| WordPress.Security.NonceVerification.Missing | WARNING | Processing form data without nonce verification. | 9 |
| WordPress.WP.EnqueuedResourceParameters.MissingVersion | WARNING | Resource version not set in call to wp_enqueue_script(). This means new versions of the script may not always be loaded due to browser caching. | 9 |
| PluginCheck.Security.DirectDB.UnescapedDBParameter | ERROR | Unescaped parameter $query used in $wpdb->get_row()\n$query assigned unsafely at line 5078. | 7 |
| WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedHooknameFound | WARNING | Hook names invoked by a theme/plugin should start with the theme/plugin prefix. Found: "formatted_woocommerce_price". | 7 |
| WordPress.DB.PreparedSQL.InterpolatedNotPrepared | WARNING | Use placeholders and $wpdb->prepare(); found interpolated variable $andor_op at "(($wpdb->posts.post_title $like_op %s) $andor_op ($wpdb->posts.post_excerpt $like_op %s) $andor_op ($wpdb->posts.post_content $like_op %s))" | 6 |
| WordPress.PHP.DevelopmentFunctions.error_log_error_log | WARNING | error_log() found. Debug code should not normally be used in production. | 5 |
| 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. | 5 |
| Generic.PHP.DisallowShortOpenTag.PossibleFound | WARNING | Possible use of short open tags detected; found: <? echo ucwords($device); ?> devices in th... | 4 |
| 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. | 4 |
| WordPress.Security.SafeRedirect.wp_redirect_wp_redirect | WARNING | wp_redirect() found. Using wp_safe_redirect(), along with the "allowed_redirect_hosts" filter if needed, can help avoid any chances of malicious redirects within code. It is also important to remember to call exit() after a redirect so that no other unwanted code is executed. | 4 |
Latest Snapshot
Findings
3,408
Errors
1,361
Warnings
2,047
Score History
First score snapshot
First scan completed Jun 20, 2026
v5.0.5 · Plugin Check 2.0.0 · Model 2026.06-mvp-static-v2
Jun 20, 2026
v5.0.5
23
Latest
- Findings
- 3,408
- Errors
- 1,361
- Warnings
- 2,047
- Plugin Check
- 2.0.0
- Model
- 2026.06-mvp-static-v2
| Scan | Score | Findings | Errors | Warnings | Plugin | Plugin Check | Model |
|---|---|---|---|---|---|---|---|
| Jun 20, 2026Latest | 23 | 3,408 | 1,361 | 2,047 | v5.0.5 | 2.0.0 | 2026.06-mvp-static-v2 |