Change Log

Latest changes

6th June 2023 / v23.0

  • Change The WPO365 | M365 APPS extension now includes the Gutenberg Editor Block to embed a SharePoint Document Library in WordPress (was previously sold as a separate extension called WPO365 | DOCUMENTS). [M365 APPS, DOCUMENTS]
  • Improvement An administrator of a website that receives OpenID Connect based ID tokens from multiple sources, can now configure the plugin to ignore ID tokens not issued by a Microsoft Azure AD based Identity Provider. [LOGIN+, SYNC, INTRANET]
  • Improvement A new (translatable) error message – for the case where the ID token is intended for a different audience – has been added. [LOGIN]
  • Improvement The Documents (shortcode and Gutenberg based) app – to embed a SharePoint library in WordPress – can now be configured to show / hide an “Open in SharePoint” link in the app’s header. [M365 APPS, DOCUMENTS, INTRANET]
  • Improvement The WPO365 authentication cookie (set when you configure an “auth.-only” authentication scenario) can be prefixed to help work-around server-side caching services / plugins that support naming convention based cache busting. [LOGIN]
  • Improvement 3 new developer actions have been added. See the updated documentation for details. [LOGIN]
  • Improvement Exceptions logged by the Microsoft Graph Mailer are earmarked when logged in ApplicationInsights with a new custom property “wpoMail”. Administrators can now configure a query-based alert in ApplicationInsights and trigger a new alert specifcally for mail-related errors if “wpoMail” equals “error”. [LOGIN, MS GRAPH MAILER]
  • Fix If certain conditions were met, the plugin would delete Audience related metadata unwantedly. [ROLES + ACCESS, SYNC, INTRANET]
  • Fix A SAMLResponse sent to the website will only be processed if the administrator configured SAML 2.0 based SSO for WordPress. [LOGIN]
  • Fix Various modifications to Microsoft Graph Mailer configurator should make it easier and more intuitive to configure it. [LOGIN, MS GRAPH MAILER]
  • Fix The Documents (shortcode and Gutenberg based) app – to embed a SharePoint library in WordPress – will now correctly load items in a folder. [M365 APPS, DOCUMENTS, INTRANET]
  • Fix The Documents (shortcode and Gutenberg based) app – to embed a SharePoint library in WordPress – now accepts a pagesize parameter to improve the performance when loading large libraries. [M365 APPS, DOCUMENTS, INTRANET]
  • Fix The Documents (shortcode and Gutenberg based) app – to embed a SharePoint library in WordPress – now loads all possible “locales” so it can display date columns e.g. “Modified” correctly. [M365 APPS, DOCUMENTS, INTRANET]
  • Fix The Log Viewer – to view and optionally resend emails sent using the Microsoft Graph Mailer – now calculates the last inserted logged item ID using MAX() instead of looking up the AUTO INCREMENT value, which may not be up-to-date. [MAIL]
  • Fix In an attempt to prevent the error “cURL error 28: Operation timed out after 15001 milliseconds with 0 bytes received” when integrating with Microsoft Graph, the use of the Expect: header has been disabled by default. [LOGIN, MS GRAPH MAILER]
  • Fix If support for multi-tenancy has been enabled and a user with a personal Microsoft account (e.g. signs in successfully, the plugin will no longer attempt to connec to Microsoft Graph to retrieve additional user attributes. [LOGIN+, CUST. USER FIELDS, SYNC, INTRANET]
  • Fix The license checker (for premium extensions / bundles) has been updated to work-around an issue whereby the license would be invalidated if the website’s home URL would incidentally returned the site’s IP address instead of its host name. This might happen occasionally, if you defined the constant WP_HOME using the $_SERVER[‘HTTP_HOST’] variable in your wp-config.php file and the site was requested by its IP address instead. [LOGIN]
  • Version bump for all extensions and bundles

3rd April 2023 / v22.1

  • Fix The built-in Microsoft Graph Mailer for WordPress will now exclude any custom headers that do not start with x- or X-, to prevent Microsoft Graph from not sending the message and reporting the following error instead: “The internet message header name […] should start with ‘x-‘ or ‘X-‘.”. [LOGIN, MICROSOFT GRAPH MAILER]

3rd April 2023 / v22.0

  • Improvement Administrators can now define configuration overrides in the WP-Config.php file. Support for configuration overrides must be enabled separately by checking the correspondig option on the plugin’s Miscellaneous page. See online documentation. [LOGIN+, SYNC, INTRANET]
  • Improvement The plugin will no longer skip loading when detecting wp-cli but instead skip any attempt to authenticate the current request. Support for wp-cli must be enabled separately by checking the correspondig option on the plugin’s Miscellaneous page. See online documentation. [LOGIN+, SYNC, INTRANET]
  • Improvement Administrators can now define a list of usernames of administrators that are allowed to administer the WPO365 settings in the WP-Config.php file. See online documentation. [LOGIN]
  • Improvement The WPO365 | MICROSOFT GRAPH MAILER plugin can now also log remotely to ApplicationInsights, allowing administrators to configure Azure’s Monitoring / Alerts feature to send – for example – an SMS whenever an exception is logged. [MICROSOFT GRAPH MAILER]
  • Fix Updated the permissions requested / scope for Azure AD B2C / OpenID Connect based Single Sign-on, after a previous change added ‘’ to the scope / permissions being requested (v21.8), which in turn caused an “invalid_request AADB2C90146” response being returned when attempting to authenticate with Microsoft. [LOGIN]
  • Fix Updated the permissions requested / scope for Azure AD / OpenID Connect based Single Sign-on, after a previous change always added ‘’ to the scope / permissions being requested (v21.8). Now this permission will only be added, if the plugin detects a premium extension (because any premium extension needs this permission when it attempts to retrieve user data from Microsoft Graph) [LOGIN]
  • Fix The application ID / application ID URI for Azure AD based protection for the WordPress REST API must now also be added to the wp-config.php (but only if the administrator has enabled the option to use wp-config.php for Azure AD secrets). [LOGIN+, SYNC, INTRANET]
  • Fix The Microsoft Graph Mailer for WordPress no longer “unauthorizes” itself, after it fails to retrieve an access token. Instead, WPO365 Health Messages are created and administrators should regularly check for errors [LOGIN, MICROSOFT GRAPH MAILER]
  • Fix Refactored the flow when sending emails from a different account than the one submitting the request to send an email to Microsoft Graph (= the default “From” account) to improve consistency, even when the alternative sending-from account is a Shared Mailbox, a Distribution List or normal User Mailbox. [MICROSOFT GRAPH MAILER, MAIL, SYNC, INTRANET]
  • Fix User synchronization will now generate an error and stop when it fails to create a new WP Cron task for the next batch of users. [SYNC, INTRANET]
  • Fix Updated Teams SDK (used for silent SSO when integrating WordPress into Microsoft Teams). [LOGIN]
  • Fix Updated PowerBI SDK. [LOGIN, INTRANET, M365 APPS]

16th March 2023 / v21.8

  • Feature Administrators can now enable Mail Staging Mode. This is useful for debugging and staging environments. WordPress emails will be logged and saved in the database instead of being sent. [MAIL]
  • Improvement The WPO365 plugin will now handle forms (e.g. Contact Form 7) that propose to send emails from a different account than the default from mail account, after it handles any other option (e.g Shared Mailbox or Send as / Send on behalf of). The proposed alternative from therefore always prevails. It can also be any type of mailbox e.g. User Mailbox, Shared Mailbox or Distributionlist. But it’s up to the adminstrator to ensure that the default from mail account is a either a member (e.g. of the Shared Mailbox) or has sufficient permissions to send emails as / on behalf of an alternative account (e.g. the Distributionlist). [MAIL]
  • Fix The initial OpenID Connect authorization request will now always include [LOGIN]
  • Fix A public property $ErrorInfo has been added to the PHPMailer object to support integration with Gravity Forms. [LOGIN, MICROSOFT GRAPH MAILER]
  • Fix The plugin now better understands – in the context of WordPress Multisite installations – whether the configuration must be retrieved / stored at site or at network level. [LOGIN]
  • Fix Some Azure AD information that the plugin collects during the plugin self-test is no longer assigned to the user executing the self-test. [LOGIN]

8th March 2023 / v21.7

  • Fix ID Token validation now also validates audiences that are defined using an Application ID URI instead of the Application ID (e.g. this is the case for Microsoft Teams). [LOGIN, MICROSOFT GRAPH MAILER]
  • Fix The plugin does no longer rely on the HTTP_HOST key of the global $_SERVER variable, which – if not initialized – may cause a critical error on the website. [LOGIN, MICROSOFT GRAPH MAILER]
  • Fix The link to launch the Mail Log Viewer would return “false” for FireFox users. [MAIL]

2nd March 2023 / v21.6

  • Improvement The (premium extension for the) Microsoft Graph Mailer for WordPress now also supports sending mail as / on behalf of another user or Distribution List. [MAIL]
  • Improvement The user interface for the Mail Log Viewer has been significantly updated with improved scrolling and selection and overall a clearer arrangement of the available information. [MAIL]
  • Improvement The Microsoft Graph Mailer for WordPress will notify the administrator in the form of a WPO365 Health Message when another plugin with mail-sending capabilities is detected. [LOGIN, MICROSOFT GRAPH MAILER]
  • Fix An alternative system for WordPress Nonces has been introduced to work around the fact that some browsers refuse to send the WordPress auth cookie along with HTTP 302 redirect requests, causing default WordPress nonce verification to fail unexpectedly, in which case the plugin would then log the warning “Could not successfully validate oidc nonce with value xyz”. [LOGIN, MICROSOFT GRAPH MAILER]

26th January 2023 / v21.5

  • Fix The recently added ID token verification did not take the mail-authorization flow into account. [LOGIN]
  • Improvement Administrators can now re-configure the WPO365 | LOGIN plugin to skip the ID token verification altogether, on the plugin’s Miscellaneous configuration page (but this is not recommended for production environments). [LOGIN]

26th January 2023 / v21.4

  • Fix The built-in update checker for premium extensions might incorrectly indicate that an update for some extensions would be available. [LOGIN]

26th January 2023 / v21.3

  • Fix The plugin would cause a fatal crash when using PHP 7.2 or lower. [LOGIN]

25th January 2023 / v21.2

  • Change The WPO365 | LOGIN plugin will now verify the tenant that issued the ID token and the audience for which the ID token was issued. [ALL]
  • Fix Various issues with the built-in license and update checker for premium extensions and bundles.
  • Fix The Employee Directory app now will only take the host portion of the SharePoint home URL when dynamically constructing the permissions scope. [M365 APPS, INTRANET]
  • Fix The User Sync test case will skip the check for custom domains when Azure AD B2C has been selected. [SYNC, INTRANET]

17th January 2023 / v21.1

  • Fix License check for premium extensions and bundles would show “unknown error occurred” for valid licenses.
  • Fix Update check for premium extensions and bundles now better aligned with the recently updated license management service.

16th January 2023 / v21.0

  • Improvement Various aspects of user synchronization have been improved / refactored in an attempt to make it easier to configure, track and start / stop jobs. [SYNC, INTRANET]
  • Improvement The WPO365 plugin will now – by default – first try to look up an existing WordPress user by its Azure AD Object ID. This value uniquely identifies a user in Azure AD and is automatically configured when WPO365 creates a new user (or updates an existing one). [ALL]
  • Improvement To support Azure AD B2C user synchronization, newly created user synchronization jobs will now – by default – skip the domain check (whereby the login domain of the username of users retrieved from Microsoft Graph is matched against a list of supported custom domains on the plugin’s User registration configuration page). Existing user synchronization jobs must be updated manually. [SYNC, INTRANET]
  • Improvement If user synchronization has been configured, the default WordPress User list will be enhanced automatically. A column is added to show the date and time a user was last updated. A second column will show a button that allows administrators to reactivate a user in case that user has been de-activated / soft-deleted by WPO365 User synchronization. [SYNC, INTRANET]
  • Improvement Support for Azure AD B2C custom login domains. See online documentation for details. [LOGIN+, SYNC, INTRANET]
  • Improvement Administrators can now configure custom website buttons targeting a specific Azure AD B2C user flow or custom policy sign-up, sign-in or reset password. See online documentation for details. [LOGIN+, SYNC, INTRANET]
  • Improvement It is now possible to configure an embedded login experience for Azure AD B2C. See online documentation for details. [LOGIN+, SYNC, INTRANET]
  • Fix The Source for custom user fields (ID token, Microsoft Graph or SAML response) selector was not always visible on the plugin’s User sync configuration page. [LOGIN+, CUSTOMER USER FIELDS, SYNC, INTRANET]
  • Fix The Allow forms to override “From” address was only enabled for application-level Mail.Send permissions. [MAIL, SYNC, INTRANET]
  • Fix Overriding the “From” address was sometimes ignored. [MAIL, SYNC, INTRANET]
  • Fix Sending from a Shared Mailbox was sometimes ignored. [MAIL, SYNC, INTRANET]
  • Fix Version bump for all WPO365 plugins. [ALL]
  • Fix License for premium extensions are now checked regularly and a notification will be shown if the license is expired. [ALL]
  • Fix The “Authorized!” label on the plugin’s Mail configuration page is now green instead of red to indicate succes

22nd November 2022 / v20.4

  • Fix The mail authorization may falsely indicate that the plugin is not authorized to send emails using Microsoft Graph due to how the plugin compared permissions. [ALL]

14th November 2022 / v20.3

  • Feature Websites that are using the Mail Integration for Office 365/Outlook are now urged to switch to WPO365 | MICROSOFT GRAPH MAILER or configure the builtin Microsoft Graph mail function of the WPO365 | LOGIN plugin. Consult the online migration guide for further details. [ALL]
  • Improvement Administrators can check an option to Use alternative CDN (on the plugin’s Integration page). If checked, the plugin will download the react-js and react-dom.js packages from the CloudFlare CDN (instead of from the default UNPKG CND). However, administrators can also choose to self-host these dependencies. In this case they can override the CDN configuration using a constant that must defined in wp-config.php. See the online documentation for details. [ALL]
  • Fix The avatar method updated in v20.0 now also overrides the get_avatar hook to avoid conflicts with other plugins such as Ultimate Member. [AVATAR, SYNC, INTRANET]

28th October 2022 / v20.2

  • Improvement Administrators can now define a constant in wp-config.php to override the default CDN used to download the react.js and react-dom.js packages. This constant must be defined immediately after the line /* That’s all, stop editing! Happy publishing. */ as an array as follows URLs may be replaced by administrators as they see fit:
define('WPO_CDN', array('react' => '', 'react_dom' => ''));

21st October 2022 / v20.1

  • Fix The renaming of an option (to allow retrieval of oauth tokens by client side apps) prevented existing configurations to update this value. [ALL]

18th October 2022 / v20.0

  • Feature The (premium version of the) Microsoft Graph Mailer can now send attachments larger than 3 MB. [MAIL, SYNC, INTRANET]
  • Feature The (premium version of the) Microsoft Graph Mailer can now send emails from a Microsoft 365 Shared Mailbox. [MAIL, SYNC, INTRANET]
  • Improvement The LOGIN+ extension now also allows administrators to save multiple configurations (on the plugin’s Import / Export configuration page). [LOGIN+]
  • Improvement Administrators can now define the name of the WordPress user meta for user attributes synchronized from Azure AD to WordPress. [LOGIN+, CUSTOM USER FIELDS, SYNC, INTRANET]
  • Improvement The Avatar method now replaces the URL of the profile image instead (by filtering the pre_get_avatar_data function instead of the get_avatar function). [AVATAR, SYNC, INTRANET]
  • Improvement Now supports receiving custom claims in a SAML response and save them as WordPress user meta. [LOGIN+, CUSTOM USER FIELDS, SYNC, INTRANET]
  • Improvement Administrators can now choose to skip updating a user WordPress user’s displayname. [LOGIN+, USER FIELDS, SYNC, INTRANET]
  • Improvement Some parts of the source code have been updated to improve compatibility with PHP 8.1. [ALL]
  • Fix The Audiences feature now also prevents access to posts and pages using a direct-edit link. [ROLES + ACCESS, SYNC, INTRANET]
  • Fix Sign out of Microsoft now also works as expected for Azure AD B2C. [LOGIN+, SYNC, INTRANET]
  • Fix Custom formatting of a WordPress user’s displayname now works as expected for SAML 2.0 based Single Sign-on. [LOGIN+, CUSTOM USER FIELDS SYNC, INTRANET]
  • Fix The shortcode properties of a Micrsoft 365 App are now HTML-decoded to handle the case where WordPress updates shortcode properties when an author edits a page. [ALL]
  • Fix The div that encapsulates a Microsoft 365 App can now be referenced by its unique classname “wpo365-app-root”. [ALL]
  • Fix Some WPO365 options have been removed / renamed to avoid triggering ModSecurity OWASP CRS causing an 418 “I am not a teapot” HTTP errors, for example when hosting a site at DreamHost. [ALL]
  • Fix The plugin now correctly tries again to get a user’s (Azure AD) group memberships with Group.Read.All permissions when the administrator has not (yet) granted permissions to do so using GroupMember.Read.All permissions. [ROLES + ACCESS, SYNC, INTRANET]

14th September 2022 / v19.4

  • Fix Mail authorization for delegated access would fail with the error “Could not retrieve a tenant and application specific JSON Web Key Set and thus the JWT token cannot be verified successfully”. [LOGIN, MICROSOFT GRAPH MAILER]
  • Fix Embedded PowerBI reports will now try to refresh the acquired access token when the browser tab is left open. [LOGIN, INTRANET, M365 APPS]
  • Fix Encoding of parameters for embedded SharePoint Online apps (Search and Documents) have been improved. [LOGIN, INTRANET, M365 APPS]
  • Fix The Audiences custom meta box has been updated and produces valid HTML. [ROLES + ACCESS, SYNC, INTRANET]

2nd September 2022 / v19.3

  • Fix The delegated mail authorization feature would – under circumstances – fail to get the mail specific tenant ID and as a result an attempt to refresh the access token may fail. [LOGIN, MICROSOFT GRAPH MAILER]

29th August 2022 / v19.2

  • Fix The Redirect URL field for the mail authorization is no longer greyed out and can be changed by administrators. [LOGIN]

29th August 2022 / v19.1

  • Fix A backward-compatibility issue with Audiences would cause a critical error when editing a post or page. Administrators with any of the following extensions installed must update as soon as possible: ROLES + ACCESS, SYNC, INTRANET. [ROLES + ACCESS, SYNC, INTRANET]

28th August 2022 / v19.0

  • Change Sending WordPress emails using Microsoft Graph can now also be configured with delegated permissions. Administrators are urged to review the documentation and to update their configuration. [LOGIN, MICROSOFT GRAPH MAILER]
  • Feature Audiences – used to target posts and pages to specific Azure AD groups – can now also be used on a post or page using a custom metabox in the sidebar. Consult the updated documentation for details. [ROLES + ACCESS, SYNC, INTRANET]
  • Feature Azure Active Directory secrets can now be stored in the website’s WP-Config.php and removed from the database. [MAIL]
  • Improvement A number of plugin self-tests have been improved to help administrators find loopholes in the configuration e.g. of User synchronization and the integration of various SharePoint Online services. [LOGIN]
  • Fix The plugin no longer “hijacks” a state parameter when sent in the header of any request. This prevented – amongst other things – enabling / disabling of WordPress auto-updates. [LOGIN]
  • Fix The Employee Directory app now shows profile information when users are searched for using SharePoint. [M365 APPS, INTRANET]
  • Fix Version bump for all WPO365 plugins.

22th July 2022 / v18.2

  • Fix Recent changes to the built-in notification service could cause a fatal error for older PHP versions that has now been fixed. [LOGIN]

18th July 2022 / v18.1

  • Fix If the plugin is configured to send WordPress emails using Microsoft Graph then it will now always replace the From email address if WordPress tries to sent emails from wordpress@[sitename]. WordPress will propose this email address is no email is set by the plugin sending the email (for example Contact Form 7). This email may pass checks as a valid email address but in reality this email address most likely does not exist. The option to fix the “localhost” issue has been removed since this fix improves the behavior for all hosts (incl. localhost). [LOGIN]
  • Improvement Various wp-admin banners as well as some translations have been updated. Also a teaching bubble is shown on the Single Sign-on page to help admins quickly find the WPO365 documentation center at [LOGIN]

4th July 2022 / v18.0

  • Change Administrators who selected OpenID Connect based single sign-on, can now choose between the Hybrid Flow and the Authorization Code Flow. New installations will automatically be configured using Authorization Code Flow. Read more [LOGIN]
  • Change Support for Azure AD B2C custom policies (sign-up, sign-in and password reset) is no longer a premium feature. [LOGIN]
  • Change All features of WPO365 | CUSTOM USER FIELDS extension are from now on supported by the WPO365 | LOGIN+ extension. See our website for details and pricing. [CUSTOM USER FIELDS, LOGIN+]
  • Change A new WPO365 Features Dashboard has been added that allows administrators to toggle features such as e.g. SSO, MAIL and SYNC on or off. [LOGIN]
  • Feature Admins can now choose to hide the WordPress Admin Bar for specific roles. [LOGIN]
  • Feature Requesting access tokens from Azure AD can now be further secured using a Proof Key for Code Exchange (PKCE). [LOGIN+, SYNC, INTRANET]
  • Feature Protect and secure your WordPress REST API with Azure AD generated oauth access tokens (PREMIUM). [LOGIN+, SYNC, INTRANET]
  • Feature Protect and secure your WordPress REST API with WordPress REST cookies. [LOGIN]
  • Improvement Azure AD B2C custom claims sent in the ID token can now be mapped to custom WordPress user meta fields. [LOGIN+, SYNC, INTRANET]
  • Improvement When specified in – for example – an email form the “From” address will be used to send the email from (instead of the configured “From” address and if the address specified in the form appears to be valid). This behavior is a premium feature and not enabled by default. [MAIL, SYNC, INTRANET]
  • Improvement Admins can now set a different Azure AD tenant for sending WordPress emails using Microsoft Graph when the plugin is configured for Azure AD B2C based single sign-on. [ALL]
  • Improvement Admins can now update the priority for the get_avatar hook on the plugin’s User sync page (default 1). [AVATAR, SYNC, INTRANET]
  • Improvement The plugin is now able to work with the more appropriate GroupMember.Read.All permissions instead of Group.Read.All and admins who configured role based access restriction are advised to update the API permissions for the registered application in Azure AD. [ROLES+ACCESS, SYNC, INTRANET]
  • Fix The logic to detect the blog ID in a WordPress Multisite (WPMU) will always test with a trailing slash. [LOGIN]
  • Fix A (custom) login message – for example created with LoginPress – will now show as expected. [ALL]
  • Fix Non-dynamic roles in an identities configuration used to enable RLS when embedding Power BI content no longer causes a fatal error. [M365 APPS, INTRANET]
  • Fix It is now possible to save empty custom user profile fields when manually updating a user’s profile. [CUSTOM USER FIELDS, SYNC, INTRANET]

Click here for older entries.