Ninja Forms – The Contact Form Builder That Grows With You

The 100% beginner friendly WordPress form builder. Drag & drop form fields to build beautiful, professional contact forms in minutes.

v3.14.6Kevin StoverUpdated Added 600k+ installs88% rating80% support resolved
23
Score
755
Errors
1,536
Warnings
+0
Change

Category Scores

Security0
Repo89
Performance95
Maintainability0

Issues to Review

Prioritized issue groups from the latest Plugin Check scan

2,291 findings

Security

1,005

10 issue groups

Maintainability

848

12 issue groups

I18n

267

3 issue groups

WARNINGSecurityRecommendedProcessing form data without nonce verification.281
Category
Security
Occurrences
281
Severity
warning

Sample message

Processing form data without nonce verification.

WARNINGMaintainabilityNon Prefixed Class FoundClasses declared by a theme/plugin should start with the theme/plugin prefix. Found: "EDD_SL_Plugin_Updater".214
Category
Maintainability
Occurrences
214
Severity
warning

Sample message

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

ERRORSecurityOutput Not EscapedAll output should be run through an escaping function (see the Security sections in the WordPress Developer Handbooks), found '"<div id='$error_id' class='error'><p>$error</p></div>"'.165
Category
Security
Occurrences
165
Severity
error

Sample message

All output should be run through an escaping function (see the Security sections in the WordPress Developer Handbooks), found '"<div id='$error_id' class='error'><p>$error</p></div>"'.

WARNINGSecurityMissing Unslash$_COOKIE[WP_SESSION_COOKIE] not unslashed before sanitization. Use wp_unslash() or similar150
Category
Security
Occurrences
150
Severity
warning

Sample message

$_COOKIE[WP_SESSION_COOKIE] not unslashed before sanitization. Use wp_unslash() or similar

WARNINGSecurityInput Not SanitizedDetected usage of a non-sanitized input variable: $_COOKIE[WP_SESSION_COOKIE]146
Category
Security
Occurrences
146
Severity
warning

Sample message

Detected usage of a non-sanitized input variable: $_COOKIE[WP_SESSION_COOKIE]

ERRORI18nMissing Translators CommentA 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.138
Category
I18n
Occurrences
138
Severity
error

Sample message

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.

WARNINGMaintainabilityDirect QueryUse of a direct database call is discouraged.108
Category
Maintainability
Occurrences
108
Severity
warning

Sample message

Use of a direct database call is discouraged.

WARNINGMaintainabilityNo CachingDirect database call without caching detected. Consider using wp_cache_get() / wp_cache_set() or wp_cache_delete().106
Category
Maintainability
Occurrences
106
Severity
warning

Sample message

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

WARNINGMaintainabilityMissing VersionResource 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.87
Category
Maintainability
Occurrences
87
Severity
warning

Sample message

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.

WARNINGMaintainabilityNon Prefixed Hookname FoundHook names invoked by a theme/plugin should start with the theme/plugin prefix. Found: &quot;&#039;nf_services_installed_&#039; . $plugin&quot;.73
Category
Maintainability
Occurrences
73
Severity
warning

Sample message

Hook names invoked by a theme/plugin should start with the theme/plugin prefix. Found: &quot;&#039;nf_services_installed_&#039; . $plugin&quot;.

Show 15 more
ERRORI18nUnordered Placeholders Text70
Category
I18n
Occurrences
70
Severity
error

Sample message

Multiple placeholders in translatable strings should be ordered. Expected "%1$d, %2$d", but got "%d, %d" in 'Action with ID %d not found in form %d'.

WARNINGMaintainabilityNon Prefixed Variable Found63
Category
Maintainability
Occurrences
63
Severity
warning

Sample message

Global variables defined by a theme/plugin should start with the theme/plugin prefix. Found: &quot;$addon&quot;.

WARNINGSecurityInput Not Validated63
Category
Security
Occurrences
63
Severity
warning

Sample message

Detected usage of a possibly undefined superglobal array index: $_FILES[&#039;nf_import_fields&#039;][&#039;tmp_name&#039;]. Check that the array index exists before using it.

ERRORI18nText Domain Mismatch59
Category
I18n
Occurrences
59
Severity
error

Sample message

Mismatched text domain. Expected 'ninja-forms' but got "ninja-froms".

ERRORSecurityNot Prepared55
Category
Security
Occurrences
55
Severity
error

Sample message

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

WARNINGMaintainabilityNot In Footer55
Category
Maintainability
Occurrences
55
Severity
warning

Sample message

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.

ERRORMaintainabilitymissing direct file access protection47
Category
Maintainability
Occurrences
47
Severity
error

Sample message

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

ERRORSecurityUnescaped DBParameter39
Category
Security
Occurrences
39
Severity
error

Sample message

Unescaped parameter $actions_meta_sql[ 'insert' ] used in $wpdb->query()\n$actions_meta_sql[ 'insert' ] used without escaping.

WARNINGSecurityMissing39
Category
Security
Occurrences
39
Severity
warning

Sample message

Processing form data without nonce verification.

WARNINGSecurityInterpolated Not Prepared37
Category
Security
Occurrences
37
Severity
warning

Sample message

Use placeholders and $wpdb-&gt;prepare(); found interpolated variable $entriesTable at $entriesTable \n

ERRORMaintainabilitywp function not compatible with requires wp34
Category
Maintainability
Occurrences
34
Severity
error

Sample message

Function "wp_get_abilities()" requires WordPress 6.9.0, but your plugin minimum supported version is WordPress 6.7.0.

ERRORSecurityException Not Escaped30
Category
Security
Occurrences
30
Severity
error

Sample message

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

WARNINGMaintainabilityNon Prefixed Function Found24
Category
Maintainability
Occurrences
24
Severity
warning

Sample message

Functions declared in the global namespace by a theme/plugin should start with the theme/plugin prefix. Found: &quot;NF_Abstracts_Extension&quot;.

ERRORMaintainabilitydate date23
Category
Maintainability
Occurrences
23
Severity
error

Sample message

date() is affected by runtime timezone changes which can cause date/time to be incorrectly displayed. Use gmdate() instead.

WARNINGMaintainabilityerror log error log14
Category
Maintainability
Occurrences
14
Severity
warning

Sample message

error_log() found. Debug code should not normally be used in production.

Score History

First score snapshot

v3.14.6

23

Latest

Findings
2,291
Errors
755
Warnings
1,536
Check
2.0.0

Related Plugins

Contact Form Query

1k+ active installs

100
Crowdsignal Forms

200k+ active installs

100
LeadConnector

20k+ active installs

100
Style Contact Form 7

1k+ active installs

100