WooCommerce Code Reference

Hydration
in package

Service class that handles hydration of API data for blocks.

Table of Contents

$asset_data_registry  : AssetDataRegistry
Instance of the asset data registry.
$cached_store_notices  : array<string|int, mixed>|null
Snapshot of store notices taken by cache_store_notices(), to restore after hydrating the API.
__construct()  : mixed
Constructor.
disable_nonce_check_callback()  : mixed
Callback to disable the nonce check. While we could use `__return_true`, we use a custom named callback so that we can remove it later without affecting other filters.
get_rest_api_response_data()  : array<string|int, mixed>
Hydrates the asset data registry with data from the API. Disables notices and nonces so requests contain valid data that is not polluted by the current session.
cache_store_notices()  : mixed
Cache notices before hydrating the API if the customer has a session and the notice functions are available.
disable_nonce_check()  : mixed
Disable the nonce check temporarily.
restore_cached_store_notices()  : mixed
Restore notices into current session from cache, only if a snapshot was taken this cycle.
restore_nonce_check()  : mixed
Restore the nonce check.
store_notice_functions_available()  : bool
Whether the store notice functions (`wc_get_notices()`, `wc_clear_notices()`, `wc_set_notices()`) are available to call.
get_response_from_controller()  : false|mixed|null
Helper method to generate GET response from a controller. Also fires the `rest_request_after_callbacks` for backward compatibility.
match_route_to_handler()  : array<string|int, mixed>|null
Inspired from WP core's `match_request_to_handler`, this matches a given path from available route regexes.

Properties

$cached_store_notices

Snapshot of store notices taken by cache_store_notices(), to restore after hydrating the API.

protected array<string|int, mixed>|null $cached_store_notices = null

null means no snapshot has been taken this cycle, either because the method has not run yet or because its guards skipped the snapshot (for example, the notice functions were unavailable). restore_cached_store_notices() only restores from a non-null array, so a null value always leaves the session untouched.

Methods

disable_nonce_check_callback()

Callback to disable the nonce check. While we could use `__return_true`, we use a custom named callback so that we can remove it later without affecting other filters.

public disable_nonce_check_callback() : mixed
Return values
mixed

get_rest_api_response_data()

Hydrates the asset data registry with data from the API. Disables notices and nonces so requests contain valid data that is not polluted by the current session.

public get_rest_api_response_data([string $path = '' ]) : array<string|int, mixed>
Parameters
$path : string = ''

API path to hydrate e.g. '/wc/store/v1/cart'.

Return values
array<string|int, mixed>Response data.

cache_store_notices()

Cache notices before hydrating the API if the customer has a session and the notice functions are available.

protected cache_store_notices() : mixed
Return values
mixed

restore_cached_store_notices()

Restore notices into current session from cache, only if a snapshot was taken this cycle.

protected restore_cached_store_notices() : mixed
Return values
mixed

store_notice_functions_available()

Whether the store notice functions (`wc_get_notices()`, `wc_clear_notices()`, `wc_set_notices()`) are available to call.

protected store_notice_functions_available() : bool

These three functions share a single definition site in includes/wc-notice-functions.php, which WooCommerce loads only for frontend/REST requests (or via wc_load_cart()). On a plain wp-admin load the functions may therefore be absent even when a WooCommerce session exists, so this seam must be checked independently of the session guard. It is protected so tests can override it to force the unavailable branch deterministically.

Tags
since
11.1.0
Return values
boolTrue if the notice functions are defined and safe to call.

get_response_from_controller()

Helper method to generate GET response from a controller. Also fires the `rest_request_after_callbacks` for backward compatibility.

private get_response_from_controller(string $controller_class, string $path[, array<string|int, mixed> $url_params = array() ][, array<string|int, mixed> $query_params = array() ]) : false|mixed|null
Parameters
$controller_class : string

Controller class FQN that will respond to the request.

$path : string

Request path regex.

$url_params : array<string|int, mixed> = array()

URL parameters extracted from route (e.g., ['id' => '123']).

$query_params : array<string|int, mixed> = array()

Query string parameters (e.g., ['key' => 'value']).

Return values
false|mixed|nullResponse

match_route_to_handler()

Inspired from WP core's `match_request_to_handler`, this matches a given path from available route regexes.

private match_route_to_handler(string $path, array<string|int, mixed> $available_routes) : array<string|int, mixed>|null

Extracts URL parameters from regex named groups and query string parameters.

Parameters
$path : string

The path to match (may include query string).

$available_routes : array<string|int, mixed>

Available routes in { $regex1 => $contoller_class1, ... } format.

Return values
array<string|int, mixed>|nullArray with 'controller', 'url_params', and 'query_params' keys, or null if no match.