Plugin Check (PCP)

Plugin Check is a WordPress.org tool which provides checks to help plugins meet the directory requirements and follow various best practices.

v2.0.0WordPress.orgUpdated Added 10k+ installs88% rating0% support resolved
0
Score
128
Errors
132
Warnings
+0
Change

Category Scores

Security0
Repo77
Performance100
Maintainability29

Issues to Review

Prioritized issue groups from the latest Plugin Check scan

260 findings

Maintainability

128

16 issue groups

Security

82

7 issue groups

I18n

39

1 issue group

Supply Chain

4

1 issue group

WARNINGMaintainabilityNon Prefixed Variable FoundGlobal variables defined by a theme/plugin should start with the theme/plugin prefix. Found: "$$query_global".43
Category
Maintainability
Occurrences
43
Severity
warning

Sample message

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

ERRORSecurityException Not EscapedAll output should be run through an escaping function (see the Security sections in the WordPress Developer Handbooks), found '$message'.43
Category
Security
Occurrences
43
Severity
error

Sample message

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

ERRORI18nText Domain MismatchMismatched text domain. Expected 'plugin-check' but got 'wp-empty-theme'.39
Category
I18n
Occurrences
39
Severity
error

Sample message

Mismatched text domain. Expected 'plugin-check' but got 'wp-empty-theme'.

WARNINGMaintainabilityNon Prefixed Function FoundFunctions declared in the global namespace by a theme/plugin should start with the theme/plugin prefix. Found: "extract_since_version".23
Category
Maintainability
Occurrences
23
Severity
warning

Sample message

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

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

Sample message

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

WARNINGMaintainabilityNon Prefixed Hookname FoundHook names invoked by a theme/plugin should start with the theme/plugin prefix. Found: "wp_plugin_check_ai_severity_threshold".13
Category
Maintainability
Occurrences
13
Severity
warning

Sample message

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

WARNINGSecurityMissingProcessing form data without nonce verification.10
Category
Security
Occurrences
10
Severity
warning

Sample message

Processing form data without nonce verification.

WARNINGSecurityInput Not SanitizedDetected usage of a non-sanitized input variable: $_GET['line']9
Category
Security
Occurrences
9
Severity
warning

Sample message

Detected usage of a non-sanitized input variable: $_GET['line']

WARNINGSecurityInput Not ValidatedDetected usage of a possibly undefined superglobal array index: $_SERVER['argv']. Check that the array index exists before using it.9
Category
Security
Occurrences
9
Severity
warning

Sample message

Detected usage of a possibly undefined superglobal array index: $_SERVER['argv']. Check that the array index exists before using it.

WARNINGSecurityMissing Unslash$_GET['line'] not unslashed before sanitization. Use wp_unslash() or similar9
Category
Security
Occurrences
9
Severity
warning

Sample message

$_GET['line'] not unslashed before sanitization. Use wp_unslash() or similar

Show 15 more
ERRORMaintainabilityfile system operations fwrite5
Category
Maintainability
Occurrences
5
Severity
error

Sample message

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

ERRORMaintainabilitywp function not compatible with requires wp5
Category
Maintainability
Occurrences
5
Severity
error

Sample message

Function "wp_ai_client_prompt()" requires WordPress 7.0.0, but your plugin minimum supported version is WordPress 6.3.0.

ERRORSupply Chainobfuscated code detected4
Category
Supply Chain
Occurrences
4
Severity
error

Sample message

Code Obfuscation tools are not permitted. Detected: Zend Guard

ERRORMaintainabilityplugin updater detected4
Category
Maintainability
Occurrences
4
Severity
error

Sample message

Plugin Updater detected. These are not permitted in WordPress.org hosted plugins. Detected: PucFactory::buildUpdateChecker

WARNINGMaintainabilityDirect Query3
Category
Maintainability
Occurrences
3
Severity
warning

Sample message

Use of a direct database call is discouraged.

WARNINGMaintainabilityNo Caching3
Category
Maintainability
Occurrences
3
Severity
warning

Sample message

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

WARNINGMaintainabilitytrademarked term3
Category
Maintainability
Occurrences
3
Severity
warning

Sample message

The plugin name includes a restricted term. Your chosen plugin name - "Plugin Check (PCP)" - contains the restricted term "plugin" which cannot be used at all in your plugin name.

ERRORMaintainabilityfile system operations mkdir2
Category
Maintainability
Occurrences
2
Severity
error

Sample message

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

ERRORMaintainabilityunlink unlink2
Category
Maintainability
Occurrences
2
Severity
error

Sample message

unlink() is discouraged. Use wp_delete_file() to delete a file.

ERRORMaintainabilityPlugin Directory Write1
Category
Maintainability
Occurrences
1
Severity
error

Sample message

Plugin folders are deleted when upgraded. Do not save data to the plugin folder using copy(). Detected usage of constant WP_CONTENT_DIR. Use wp_upload_dir() to get the uploads directory path or save to the database instead.

WARNINGSecurityUnescaped DBParameter1
Category
Security
Occurrences
1
Severity
warning

Sample message

Unescaped parameter $table used in $wpdb->query()

WARNINGMaintainabilitySchema Change1
Category
Maintainability
Occurrences
1
Severity
warning

Sample message

Attempting a database schema change is discouraged.

WARNINGMaintainabilityNon Prefixed Constant Found1
Category
Maintainability
Occurrences
1
Severity
warning

Sample message

Global constants defined by a theme/plugin should start with the theme/plugin prefix. Found: "WP_PLUGIN_CHECK_OBJECT_CACHE_DROPIN_VERSION".

WARNINGMaintainabilityerror log var dump1
Category
Maintainability
Occurrences
1
Severity
warning

Sample message

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

WARNINGSecurityRecommended1
Category
Security
Occurrences
1
Severity
warning

Sample message

Processing form data without nonce verification.

Score History

First score snapshot

v2.0.0

0

Latest

Findings
260
Errors
128
Warnings
132
Check
2.0.0

Related Plugins

100
DietPress

2k+ active installs

100
Disable Emojis (GDPR friendly)

60k+ active installs

100
Embed Optimizer

50k+ active installs

100
Image Placeholders

60k+ active installs

100
Login Security Captcha

10k+ active installs

100