The most powerful drag and drop WordPress form builder for contact forms, payment forms, calculators, quizzes, surveys, and data-driven applications.
Category Scores
Top Issues by Category
maintainability1,887
security95
Issues Details
2,011 issues found in latest scan
Global variables defined by a theme/plugin should start with the theme/plugin prefix. Found: "$a".
Hook names invoked by a theme/plugin should start with the theme/plugin prefix. Found: "'frm_after_create_entry_' . $new_values['form_id']".
Classes declared by a theme/plugin should start with the theme/plugin prefix. Found: "FrmAddon".
Processing form data without nonce verification.
Direct database call without caching detected. Consider using wp_cache_get() / wp_cache_set() or wp_cache_delete().
strip_tags() is discouraged. Use the more comprehensive wp_strip_all_tags() instead.
Unescaped parameter $q used in $wpdb->query()\n$q used without escaping.
Detected usage of meta_value, possible slow query.
Attempting a database schema change is discouraged.
Use of heredoc syntax (<<<) is not allowed; use standard strings or inline HTML instead
parse_url() is discouraged because of inconsistency in the output across PHP versions; use wp_parse_url() instead.
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.
The use of function set_time_limit() is discouraged
print_r() found. Debug code should not normally be used in production.
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.
$_POST['item_meta'] not unslashed before sanitization. Use wp_unslash() or similar
Replacement variables found, but no valid placeholders found in the query.
Functions declared in the global namespace by a theme/plugin should start with the theme/plugin prefix. Found: "frm_class_autoloader".
File operations should use WP_Filesystem methods instead of direct PHP filesystem calls. Found: fclose().
File operations should use WP_Filesystem methods instead of direct PHP filesystem calls. Found: readfile().
Using exclusionary parameters, like exclude, in calls to get_posts() should be done with caution, see https://wpvip.com/documentation/performance-improvements-by-removing-usage-of-post__not_in/ for more information.
Hook names invoked by a theme/plugin should start with the theme/plugin prefix. Found: "$atts['link_hook']['hook']".
Global constants defined by a theme/plugin should start with the theme/plugin prefix. Found: "WP_IMPORTING".
File operations should use WP_Filesystem methods instead of direct PHP filesystem calls. Found: fopen().
| Code | Type | Message | Count |
|---|---|---|---|
| WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedVariableFound | WARNING | Global variables defined by a theme/plugin should start with the theme/plugin prefix. Found: "$a". | 804 |
| WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedHooknameFound | WARNING | Hook names invoked by a theme/plugin should start with the theme/plugin prefix. Found: "'frm_after_create_entry_' . $new_values['form_id']". | 631 |
| WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedClassFound | WARNING | Classes declared by a theme/plugin should start with the theme/plugin prefix. Found: "FrmAddon". | 234 |
| WordPress.DB.DirectDatabaseQuery.DirectQuery | WARNING | Use of a direct database call is discouraged. | 73 |
| WordPress.Security.NonceVerification.Recommended | WARNING | Processing form data without nonce verification. | 65 |
| WordPress.DB.DirectDatabaseQuery.NoCaching | WARNING | Direct database call without caching detected. Consider using wp_cache_get() / wp_cache_set() or wp_cache_delete(). | 62 |
| WordPress.WP.AlternativeFunctions.strip_tags_strip_tags | ERROR | strip_tags() is discouraged. Use the more comprehensive wp_strip_all_tags() instead. | 17 |
| PluginCheck.Security.DirectDB.UnescapedDBParameter | WARNING | Unescaped parameter $q used in $wpdb->query()\n$q used without escaping. | 16 |
| WordPress.DB.SlowDBQuery.slow_db_query_meta_value | WARNING | Detected usage of meta_value, possible slow query. | 13 |
| WordPress.DB.DirectDatabaseQuery.SchemaChange | WARNING | Attempting a database schema change is discouraged. | 9 |
| PluginCheck.CodeAnalysis.Heredoc.NotAllowed | ERROR | Use of heredoc syntax (<<<) is not allowed; use standard strings or inline HTML instead | 6 |
| WordPress.WP.AlternativeFunctions.parse_url_parse_url | ERROR | parse_url() is discouraged because of inconsistency in the output across PHP versions; use wp_parse_url() instead. | 6 |
| 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. | 6 |
| Squiz.PHP.DiscouragedFunctions.Discouraged | WARNING | The use of function set_time_limit() is discouraged | 5 |
| WordPress.PHP.DevelopmentFunctions.error_log_print_r | WARNING | print_r() found. Debug code should not normally be used in production. | 5 |
| 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. | 5 |
| WordPress.Security.ValidatedSanitizedInput.MissingUnslash | WARNING | $_POST['item_meta'] not unslashed before sanitization. Use wp_unslash() or similar | 5 |
| WordPress.DB.PreparedSQLPlaceholders.UnfinishedPrepare | WARNING | Replacement variables found, but no valid placeholders found in the query. | 4 |
| WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedFunctionFound | WARNING | Functions declared in the global namespace by a theme/plugin should start with the theme/plugin prefix. Found: "frm_class_autoloader". | 4 |
| WordPress.WP.AlternativeFunctions.file_system_operations_fclose | ERROR | File operations should use WP_Filesystem methods instead of direct PHP filesystem calls. Found: fclose(). | 3 |
| WordPress.WP.AlternativeFunctions.file_system_operations_readfile | ERROR | File operations should use WP_Filesystem methods instead of direct PHP filesystem calls. Found: readfile(). | 3 |
| WordPressVIPMinimum.Performance.WPQueryParams.PostNotIn_exclude | WARNING | Using exclusionary parameters, like exclude, in calls to get_posts() should be done with caution, see https://wpvip.com/documentation/performance-improvements-by-removing-usage-of-post__not_in/ for more information. | 3 |
| WordPress.NamingConventions.PrefixAllGlobals.DynamicHooknameFound | WARNING | Hook names invoked by a theme/plugin should start with the theme/plugin prefix. Found: "$atts['link_hook']['hook']". | 2 |
| WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedConstantFound | WARNING | Global constants defined by a theme/plugin should start with the theme/plugin prefix. Found: "WP_IMPORTING". | 2 |
| WordPress.WP.AlternativeFunctions.file_system_operations_fopen | ERROR | File operations should use WP_Filesystem methods instead of direct PHP filesystem calls. Found: fopen(). | 2 |
Latest Snapshot
Findings
2,011
Errors
52
Warnings
1,959
Score History
First score snapshot
First scan completed Jun 19, 2026
v6.32 · Plugin Check 2.0.0 · Model 2026.06-mvp-static-v2
Jun 19, 2026
v6.32
21
Latest
- Findings
- 2,011
- Errors
- 52
- Warnings
- 1,959
- Plugin Check
- 2.0.0
- Model
- 2026.06-mvp-static-v2
| Scan | Score | Findings | Errors | Warnings | Plugin | Plugin Check | Model |
|---|---|---|---|---|---|---|---|
| Jun 19, 2026Latest | 21 | 2,011 | 52 | 1,959 | v6.32 | 2.0.0 | 2026.06-mvp-static-v2 |