Automattic\WooCommerce\Api\Infrastructure

PrincipalResolver{}finalWC 1.0

Default principal resolver for the WooCommerce dual code+GraphQL API.

Plugins that implement their own API and authenticate against something other than WordPress users (e.g. an app token) must ship their own resolver at <plugin-api-namespace>\Infrastructure\PrincipalResolver with a resolve_principal( \WP_REST_Request ): T (or zero-arg) method whose return type is the plugin's own principal class. ApiBuilder detects it during generation and routes the autogenerated controller through it.

The \WP_REST_Request parameter is optional; the default resolver doesn't inspect headers (WordPress's auth pipeline has already populated the global current user by the time this fires).

No Hooks.

Usage

$PrincipalResolver = new PrincipalResolver();
// use class methods

Methods

  1. public resolve_principal()

PrincipalResolver{} code WC 10.9.1

final class PrincipalResolver {
	/**
	 * Resolve the request principal.
	 *
	 * Anonymous requests are signalled by a Principal whose underlying
	 * `WP_User` has `ID === 0` (see {@see Principal::is_authenticated()}).
	 */
	public function resolve_principal(): Principal {
		return new Principal( wp_get_current_user() );
	}
}