WordPress + Microsoft Entra | Ext. ID | B2C | M365 Integration for your Digital Workplace. For SSO, Mail, Roles, Access, Sync, SharePoint, PowerBI.
Category Scores
Top Issues by Category
security200
maintainability178
Issues Details
426 issues found in latest scan
All output should be run through an escaping function (see the Security sections in the WordPress Developer Handbooks), found '"Cannot validate digest: Unsupported Algorithm <$digestAlgorithm>"'.
Namespaces declared by a theme/plugin should start with the theme/plugin prefix. Found: "Wpo".
Global variables defined by a theme/plugin should start with the theme/plugin prefix. Found: "$WPO_CONFIG".
$_GET['RelayState'] not unslashed before sanitization. Use wp_unslash() or similar
Detected usage of a non-sanitized input variable: $_GET['RelayState']
Processing form data without nonce verification.
Use of heredoc syntax (<<<) is not allowed; use standard strings or inline HTML instead
Function "str_contains()" requires WordPress 5.9.0, but your plugin minimum supported version is WordPress 5.0.0.
All output should be run through an escaping function (see the Security sections in the WordPress Developer Handbooks), found '$_SERVER['REQUEST_URI']'.
Using cURL functions is highly discouraged. Use wp_remote_get() instead.
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.
The %i modifier is only supported in WP 6.2 or higher. Found: "%i".
var_export() found. Debug code should not normally be used in production.
All output should be run through an escaping function (like esc_html_e() or esc_attr_e()), found '_e'.
Processing form data without nonce verification.
Hook names invoked by a theme/plugin should start with the theme/plugin prefix. Found: "destroy_wpo365_session".
Detected usage of a possibly undefined superglobal array index: $_SERVER['QUERY_STRING']. Check that the array index exists before using it.
error_reporting() can lead to full path disclosure.
PHP file should prevent direct access. Add a check like: if ( ! defined( 'ABSPATH' ) ) exit;
Classes declared by a theme/plugin should start with the theme/plugin prefix. Found: "XMLSecEnc".
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.
mt_rand() is discouraged. Use the far less predictable wp_rand() instead.
The plugin name includes a restricted term. Your chosen plugin name - "WPO365 | LOGIN" - contains the restricted term "wp" which cannot be used at all in your plugin name.
Offloading images, js, css, and other scripts to your servers or any remote service is disallowed.
| Code | Type | Message | Count |
|---|---|---|---|
| WordPress.Security.EscapeOutput.ExceptionNotEscaped | ERROR | All output should be run through an escaping function (see the Security sections in the WordPress Developer Handbooks), found '"Cannot validate digest: Unsupported Algorithm <$digestAlgorithm>"'. | 90 |
| WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedNamespaceFound | WARNING | Namespaces declared by a theme/plugin should start with the theme/plugin prefix. Found: "Wpo". | 75 |
| WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedVariableFound | WARNING | Global variables defined by a theme/plugin should start with the theme/plugin prefix. Found: "$WPO_CONFIG". | 30 |
| WordPress.Security.ValidatedSanitizedInput.MissingUnslash | WARNING | $_GET['RelayState'] not unslashed before sanitization. Use wp_unslash() or similar | 27 |
| WordPress.Security.ValidatedSanitizedInput.InputNotSanitized | WARNING | Detected usage of a non-sanitized input variable: $_GET['RelayState'] | 26 |
| WordPress.WP.I18n.MissingArgDomain | ERROR | Missing $domain parameter in function call to __(). | 25 |
| WordPress.Security.NonceVerification.Recommended | WARNING | Processing form data without nonce verification. | 20 |
| PluginCheck.CodeAnalysis.Heredoc.NotAllowed | ERROR | Use of heredoc syntax (<<<) is not allowed; use standard strings or inline HTML instead | 18 |
| wp_function_not_compatible_with_requires_wp | ERROR | Function "str_contains()" requires WordPress 5.9.0, but your plugin minimum supported version is WordPress 5.0.0. | 17 |
| WordPress.Security.EscapeOutput.OutputNotEscaped | ERROR | All output should be run through an escaping function (see the Security sections in the WordPress Developer Handbooks), found '$_SERVER['REQUEST_URI']'. | 10 |
| WordPress.WP.AlternativeFunctions.curl_curl_setopt | ERROR | Using cURL functions is highly discouraged. Use wp_remote_get() instead. | 8 |
| 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.DB.PreparedSQLPlaceholders.UnsupportedIdentifierPlaceholder | ERROR | The %i modifier is only supported in WP 6.2 or higher. Found: "%i". | 7 |
| WordPress.PHP.DevelopmentFunctions.error_log_var_export | WARNING | var_export() found. Debug code should not normally be used in production. | 6 |
| WordPress.Security.EscapeOutput.UnsafePrintingFunction | ERROR | All output should be run through an escaping function (like esc_html_e() or esc_attr_e()), found '_e'. | 6 |
| WordPress.Security.NonceVerification.Missing | WARNING | Processing form data without nonce verification. | 6 |
| WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedHooknameFound | WARNING | Hook names invoked by a theme/plugin should start with the theme/plugin prefix. Found: "destroy_wpo365_session". | 5 |
| WordPress.Security.ValidatedSanitizedInput.InputNotValidated | WARNING | Detected usage of a possibly undefined superglobal array index: $_SERVER['QUERY_STRING']. Check that the array index exists before using it. | 5 |
| WordPress.PHP.DevelopmentFunctions.prevent_path_disclosure_error_reporting | WARNING | error_reporting() can lead to full path disclosure. | 4 |
| missing_direct_file_access_protection | ERROR | PHP file should prevent direct access. Add a check like: if ( ! defined( 'ABSPATH' ) ) exit; | 4 |
| WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedClassFound | WARNING | Classes declared by a theme/plugin should start with the theme/plugin prefix. Found: "XMLSecEnc". | 3 |
| 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. | 3 |
| WordPress.WP.AlternativeFunctions.rand_mt_rand | ERROR | mt_rand() is discouraged. Use the far less predictable wp_rand() instead. | 3 |
| trademarked_term | WARNING | The plugin name includes a restricted term. Your chosen plugin name - "WPO365 | LOGIN" - contains the restricted term "wp" which cannot be used at all in your plugin name. | 3 |
| PluginCheck.CodeAnalysis.Offloading.OffloadedContent | ERROR | Offloading images, js, css, and other scripts to your servers or any remote service is disallowed. | 2 |
Latest Snapshot
Findings
426
Errors
209
Warnings
217
Score History
First score snapshot
First scan completed Jun 20, 2026
v42.10 · Plugin Check 2.0.0 · Model 2026.06-mvp-static-v2
Jun 20, 2026
v42.10
28
Latest
- Findings
- 426
- Errors
- 209
- Warnings
- 217
- Plugin Check
- 2.0.0
- Model
- 2026.06-mvp-static-v2
| Scan | Score | Findings | Errors | Warnings | Plugin | Plugin Check | Model |
|---|---|---|---|---|---|---|---|
| Jun 20, 2026Latest | 28 | 426 | 209 | 217 | v42.10 | 2.0.0 | 2026.06-mvp-static-v2 |