Device Detector

Full featured analytics reporting and management tool that detects all devices accessing your WordPress site.

v4.5.0Pierre LannoyUpdated Added 600 installs80% rating
33
Score
209
Errors
112
Warnings
+0
Change

Category Scores

Security0
Repo100
Performance100
Maintainability38

Issues to Review

Prioritized issue groups from the latest Plugin Check scan

321 findings

Maintainability

145

14 issue groups

Security

117

7 issue groups

I18n

56

4 issue groups

ERRORSecurityOutput is not escapedAll output should be run through an escaping function (see the Security sections in the WordPress Developer Handbooks), found '"Bad group name: $alias."'.76
Category
Security
Occurrences
76
Severity
error

Sample message

All output should be run through an escaping function (see the Security sections in the WordPress Developer Handbooks), found '"Bad group name: $alias."'.

WARNINGMaintainabilityNon-prefixed namespaceNamespaces declared by a theme/plugin should start with the theme/plugin prefix. Found: "Psr\Http\Client".67
Category
Maintainability
Occurrences
67
Severity
warning

Sample message

Namespaces declared by a theme/plugin should start with the theme/plugin prefix. Found: "Psr\Http\Client".

ERRORMaintainabilityMissing direct file access protectionPHP file should prevent direct access. Add a check like: if ( ! defined( 'ABSPATH' ) ) exit;37
Category
Maintainability
Occurrences
37
Severity
error

Sample message

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

ERRORI18nText Domain MismatchMismatched text domain. Expected 'device-detector' but got 'client-detector'.25
Category
I18n
Occurrences
25
Severity
error

Sample message

Mismatched text domain. Expected 'device-detector' but got 'client-detector'.

ERRORI18nMissing Translators CommentA function call to esc_html__() 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.24
Category
I18n
Occurrences
24
Severity
error

Sample message

A function call to esc_html__() 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.

ERRORSecurityException output is not escapedAll output should be run through an escaping function (see the Security sections in the WordPress Developer Handbooks), found '"Method {$methodName} not found"'.19
Category
Security
Occurrences
19
Severity
error

Sample message

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

WARNINGMaintainabilityNon-prefixed global variableGlobal variables defined by a theme/plugin should start with the theme/plugin prefix. Found: "$active_tab".15
Category
Maintainability
Occurrences
15
Severity
warning

Sample message

Global variables defined by a theme/plugin should start with the theme/plugin prefix. Found: "$active_tab".

ERRORSecuritySetting is missing a sanitization callbackSanitization missing for register_setting().9
Category
Security
Occurrences
9
Severity
error

Sample message

Sanitization missing for register_setting().

WARNINGMaintainabilityNon-prefixed hook nameHook names invoked by a theme/plugin should start with the theme/plugin prefix. Found: "all_plugins".9
Category
Maintainability
Occurrences
9
Severity
warning

Sample message

Hook names invoked by a theme/plugin should start with the theme/plugin prefix. Found: "all_plugins".

ERRORI18nUnordered Placeholders TextMultiple placeholders in translatable strings should be ordered. Expected "%1$s, %2$s", but got "%s, %s" in 'Available classes: %s. If not detected, the class will be %s.'.6
Category
I18n
Occurrences
6
Severity
error

Sample message

Multiple placeholders in translatable strings should be ordered. Expected "%1$s, %2$s", but got "%s, %s" in 'Available classes: %s. If not detected, the class will be %s.'.

Show 15 more
WARNINGSecurityInput is not sanitized5
Category
Security
Occurrences
5
Severity
warning

Sample message

Detected usage of a non-sanitized input variable: $_POST['_wpnonce']

WARNINGSecurityRequest data is not unslashed5
Category
Security
Occurrences
5
Severity
warning

Sample message

$_POST['_wpnonce'] not unslashed before sanitization. Use wp_unslash() or similar

WARNINGMaintainabilityNon-prefixed function4
Category
Maintainability
Occurrences
4
Severity
warning

Sample message

Functions declared in the global namespace by a theme/plugin should start with the theme/plugin prefix. Found: "poo_switch_autoupdate_callback".

ERRORMaintainabilitydate date3
Category
Maintainability
Occurrences
3
Severity
error

Sample message

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

ERRORMaintainabilityNot Allowed2
Category
Maintainability
Occurrences
2
Severity
error

Sample message

Use of heredoc syntax (<<<) is not allowed; use standard strings or inline HTML instead

ERRORSecuritySQL query is not prepared2
Category
Security
Occurrences
2
Severity
error

Sample message

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

WARNINGMaintainabilityunexpected markdown file2
Category
Maintainability
Occurrences
2
Severity
warning

Sample message

Unexpected markdown file "HOOKS.md" detected in plugin root. Only specific markdown files are expected in production plugins.

ERRORMaintainabilityOffloaded Content1
Category
Maintainability
Occurrences
1
Severity
error

Sample message

Offloading images, js, css, and other scripts to your servers or any remote service is disallowed.

WARNINGSecurityDatabase parameter is not escaped1
Category
Security
Occurrences
1
Severity
warning

Sample message

Unescaped parameter $table used in $wpdb-&gt;get_var()

WARNINGMaintainabilityDirect Query1
Category
Maintainability
Occurrences
1
Severity
warning

Sample message

Use of a direct database call is discouraged.

WARNINGMaintainabilityNo Caching1
Category
Maintainability
Occurrences
1
Severity
warning

Sample message

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

WARNINGMaintainabilityNon-prefixed constant1
Category
Maintainability
Occurrences
1
Severity
warning

Sample message

Global constants defined by a theme/plugin should start with the theme/plugin prefix. Found: &quot;APCU_CACHE_PREFIX&quot;.

ERRORMaintainabilityfile system operations mkdir1
Category
Maintainability
Occurrences
1
Severity
error

Sample message

File operations should use WP_Filesystem methods instead of direct PHP filesystem calls. Found: mkdir().

ERRORMaintainabilitystrip tags strip tags1
Category
Maintainability
Occurrences
1
Severity
error

Sample message

strip_tags() is discouraged. Use the more comprehensive wp_strip_all_tags() instead.

ERRORI18nMissing Arg Domain1
Category
I18n
Occurrences
1
Severity
error

Sample message

Missing $domain parameter in function call to esc_html__().

External Connections

Potential connections found in static code analysis.

33 domains

Outbound calls

298

External assets

0

Incoming endpoints

2

Notable Domains

pierre.lannoy.fr76 · outbound
matomo.org41 · outbound
tools.ietf.org16 · outbound
php.net8 · outbound
momentjs.com6 · outbound
perfops.one3 · outbound

Platform / Reference Domains

github.com59 · platform/reference
gnu.org41 · platform/reference
w3.org15 · platform/reference
opensource.org2 · platform/reference
wordpress.org2 · platform/reference
lists.w3.org1 · platform/reference

External Asset Domains

No external asset domains detected.

Incoming Endpoints

No public endpoints detected.

Admin AJAX endpoints2
wp_ajax_hide_podd_nagauthenticated

wp_ajax

wp_ajax_podd_get_statsauthenticated

wp_ajax

Score History

First score snapshot

v4.5.0

33

Latest

Findings
321
Errors
209
Warnings
112
Check
2.0.0

Relationship Map

Author, categories, issues, domains, and nearby plugins.

37 nodes

Related Plugins

Device Mockups

900 active installs

97
89
En Spam

500 active installs

75