Add a product catalog to your site with blocks or shortcodes. Works with WooCommerce or standalone. Flexible and customizable, works with any theme.
Category Scores
Top Issues by Category
security608
maintainability409
Issues Details
1,079 issues found in latest scan
All output should be run through an escaping function (like esc_html_e() or esc_attr_e()), found '_e'.
PHP file should prevent direct access. Add a check like: if ( ! defined( 'ABSPATH' ) ) exit;
All output should be run through an escaping function (see the Security sections in the WordPress Developer Handbooks), found '"<a href='{$value}' target='_blank'>{$value}</a>"'.
$_COOKIE['upcp_cart_products'] not unslashed before sanitization. Use wp_unslash() or similar
Classes declared by a theme/plugin should start with the theme/plugin prefix. Found: "ewdupcpAJAX".
Processing form data without nonce verification.
Hook names invoked by a theme/plugin should start with the theme/plugin prefix. Found: "'ewd-upcp-settings-' . $setting".
Processing form data without nonce verification.
Global variables defined by a theme/plugin should start with the theme/plugin prefix. Found: "$average_rating".
Direct database call without caching detected. Consider using wp_cache_get() / wp_cache_set() or wp_cache_delete().
Mismatched text domain. Expected 'ultimate-product-catalogue' but got 'simple-admin-pages'.
Detected usage of a possibly undefined superglobal array index: $_GET['SingleProduct']. Check that the array index exists before using it.
Use placeholders and $wpdb->prepare(); found interpolated variable $catalog_items_table_name at "SELECT * FROM $catalog_items_table_name WHERE Catalogue_ID=%d ORDER BY Position"
Unescaped parameter $catalog_items_table_name used in $wpdb->get_results()\n$catalog_items_table_name assigned unsafely at line 708.
Detected usage of a non-sanitized input variable: $_FILES['ewd_upcp_products_spreadsheet']['name']
Functions declared in the global namespace by a theme/plugin should start with the theme/plugin prefix. Found: "ewd_add_frontend_ajax_url".
strip_tags() is discouraged. Use the more comprehensive wp_strip_all_tags() instead.
Detected usage of meta_query, possible slow query.
Global constants defined by a theme/plugin should start with the theme/plugin prefix. Found: "EWD_UPCP_CATALOG_POST_TYPE".
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.
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.
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.
debug_backtrace() found. Debug code should not normally be used in production.
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.
| 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'. | 234 |
| missing_direct_file_access_protection | ERROR | PHP file should prevent direct access. Add a check like: if ( ! defined( 'ABSPATH' ) ) exit; | 128 |
| WordPress.Security.EscapeOutput.OutputNotEscaped | ERROR | All output should be run through an escaping function (see the Security sections in the WordPress Developer Handbooks), found '"<a href='{$value}' target='_blank'>{$value}</a>"'. | 122 |
| WordPress.Security.ValidatedSanitizedInput.MissingUnslash | WARNING | $_COOKIE['upcp_cart_products'] not unslashed before sanitization. Use wp_unslash() or similar | 72 |
| WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedClassFound | WARNING | Classes declared by a theme/plugin should start with the theme/plugin prefix. Found: "ewdupcpAJAX". | 67 |
| WordPress.Security.NonceVerification.Recommended | WARNING | Processing form data without nonce verification. | 63 |
| WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedHooknameFound | WARNING | Hook names invoked by a theme/plugin should start with the theme/plugin prefix. Found: "'ewd-upcp-settings-' . $setting". | 44 |
| WordPress.Security.NonceVerification.Missing | WARNING | Processing form data without nonce verification. | 40 |
| WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedVariableFound | WARNING | Global variables defined by a theme/plugin should start with the theme/plugin prefix. Found: "$average_rating". | 32 |
| WordPress.DB.DirectDatabaseQuery.DirectQuery | WARNING | Use of a direct database call is discouraged. | 28 |
| WordPress.DB.DirectDatabaseQuery.NoCaching | WARNING | Direct database call without caching detected. Consider using wp_cache_get() / wp_cache_set() or wp_cache_delete(). | 28 |
| WordPress.WP.I18n.TextDomainMismatch | ERROR | Mismatched text domain. Expected 'ultimate-product-catalogue' but got 'simple-admin-pages'. | 25 |
| WordPress.Security.ValidatedSanitizedInput.InputNotValidated | WARNING | Detected usage of a possibly undefined superglobal array index: $_GET['SingleProduct']. Check that the array index exists before using it. | 22 |
| WordPress.DB.PreparedSQL.InterpolatedNotPrepared | WARNING | Use placeholders and $wpdb->prepare(); found interpolated variable $catalog_items_table_name at "SELECT * FROM $catalog_items_table_name WHERE Catalogue_ID=%d ORDER BY Position" | 19 |
| PluginCheck.Security.DirectDB.UnescapedDBParameter | WARNING | Unescaped parameter $catalog_items_table_name used in $wpdb->get_results()\n$catalog_items_table_name assigned unsafely at line 708. | 18 |
| WordPress.Security.ValidatedSanitizedInput.InputNotSanitized | WARNING | Detected usage of a non-sanitized input variable: $_FILES['ewd_upcp_products_spreadsheet']['name'] | 18 |
| WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedFunctionFound | WARNING | Functions declared in the global namespace by a theme/plugin should start with the theme/plugin prefix. Found: "ewd_add_frontend_ajax_url". | 17 |
| WordPress.WP.AlternativeFunctions.strip_tags_strip_tags | ERROR | strip_tags() is discouraged. Use the more comprehensive wp_strip_all_tags() instead. | 17 |
| WordPress.DB.SlowDBQuery.slow_db_query_meta_query | WARNING | Detected usage of meta_query, possible slow query. | 12 |
| WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedConstantFound | WARNING | Global constants defined by a theme/plugin should start with the theme/plugin prefix. Found: "EWD_UPCP_CATALOG_POST_TYPE". | 10 |
| 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 |
| 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. | 8 |
| 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. | 7 |
| WordPress.PHP.DevelopmentFunctions.error_log_debug_backtrace | WARNING | debug_backtrace() found. Debug code should not normally be used in production. | 6 |
| 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. | 4 |
Latest Snapshot
Findings
1,079
Errors
554
Warnings
525
Score History
First score snapshot
First scan completed
v5.3.15 · Plugin Check 2.0.0 · Model 2026.06-mvp-static-v2
v5.3.15
24
Latest
- Findings
- 1,079
- Errors
- 554
- Warnings
- 525
- Plugin Check
- 2.0.0
- Model
- 2026.06-mvp-static-v2
| Scan | Score | Findings | Errors | Warnings | Plugin | Plugin Check | Model |
|---|---|---|---|---|---|---|---|
| Latest | 24 | 1,079 | 554 | 525 | v5.3.15 | 2.0.0 | 2026.06-mvp-static-v2 |