WPO365 | SEAMLESS WORDPRESS + MICROSOFT INTEGRATION (WPO365 | LOGIN)

WordPress + Microsoft Entra | Ext. ID | B2C | M365 Integration for your Digital Workplace. For SSO, Mail, Roles, Access, Sync, SharePoint, PowerBI.

v42.10Marco van WierenUpdated 2026-06-05Added Sep 28, 201710k+ installs98% rating100% support resolved
28
Score
209
Errors
217
Warnings
+0
Change

Category Scores

Security0
Repo100
Performance100
Maintainability13

Top Issues by Category

security200
maintainability178
i18n33

Issues Details

426 issues found in latest scan

ERROR90
WordPress.Security.EscapeOutput.ExceptionNotEscaped

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>"'.

WARNING75
WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedNamespaceFound

Namespaces declared by a theme/plugin should start with the theme/plugin prefix. Found: &quot;Wpo&quot;.

WARNING30
WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedVariableFound

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

WARNING27
WordPress.Security.ValidatedSanitizedInput.MissingUnslash

$_GET[&#039;RelayState&#039;] not unslashed before sanitization. Use wp_unslash() or similar

WARNING26
WordPress.Security.ValidatedSanitizedInput.InputNotSanitized

Detected usage of a non-sanitized input variable: $_GET[&#039;RelayState&#039;]

ERROR25
WordPress.WP.I18n.MissingArgDomain

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

WARNING20
WordPress.Security.NonceVerification.Recommended

Processing form data without nonce verification.

ERROR18
PluginCheck.CodeAnalysis.Heredoc.NotAllowed

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

ERROR17
wp_function_not_compatible_with_requires_wp

Function "str_contains()" requires WordPress 5.9.0, but your plugin minimum supported version is WordPress 5.0.0.

ERROR10
WordPress.Security.EscapeOutput.OutputNotEscaped

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

ERROR8
WordPress.WP.AlternativeFunctions.curl_curl_setopt

Using cURL functions is highly discouraged. Use wp_remote_get() instead.

ERROR8
WordPress.WP.I18n.MissingTranslatorsComment

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.

ERROR7
WordPress.DB.PreparedSQLPlaceholders.UnsupportedIdentifierPlaceholder

The %i modifier is only supported in WP 6.2 or higher. Found: "%i".

WARNING6
WordPress.PHP.DevelopmentFunctions.error_log_var_export

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

ERROR6
WordPress.Security.EscapeOutput.UnsafePrintingFunction

All output should be run through an escaping function (like esc_html_e() or esc_attr_e()), found '_e'.

WARNING6
WordPress.Security.NonceVerification.Missing

Processing form data without nonce verification.

WARNING5
WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedHooknameFound

Hook names invoked by a theme/plugin should start with the theme/plugin prefix. Found: &quot;destroy_wpo365_session&quot;.

WARNING5
WordPress.Security.ValidatedSanitizedInput.InputNotValidated

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

WARNING4
WordPress.PHP.DevelopmentFunctions.prevent_path_disclosure_error_reporting

error_reporting() can lead to full path disclosure.

ERROR4
missing_direct_file_access_protection

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

WARNING3
WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedClassFound

Classes declared by a theme/plugin should start with the theme/plugin prefix. Found: &quot;XMLSecEnc&quot;.

WARNING3
WordPress.Security.SafeRedirect.wp_redirect_wp_redirect

wp_redirect() found. Using wp_safe_redirect(), along with the &quot;allowed_redirect_hosts&quot; 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.

ERROR3
WordPress.WP.AlternativeFunctions.rand_mt_rand

mt_rand() is discouraged. Use the far less predictable wp_rand() instead.

WARNING3
trademarked_term

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.

ERROR2
PluginCheck.CodeAnalysis.Offloading.OffloadedContent

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

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

Related Plugins