WooCommerce Code Reference

ShopperListItemSchema extends AbstractSchema
in package
Uses ProductItemTrait

ShopperListItemSchema class.

Serializes a {@see}. Renders live product fields when the item reports is_live, and falls back to at-save snapshot data otherwise.

Table of Contents

EXTENDING_KEY  = 'extensions'
Extending key that gets added to endpoint.
IDENTIFIER  = 'shopper-list-item'
The schema item identifier.
$controller  : SchemaController
Schema Controller instance.
$extend  : ExtendSchema
Rest extend instance.
$image_attachment_schema  : ImageAttachmentSchema
Image attachment schema instance.
$title  : string
The schema item name.
__construct()  : mixed
Constructor.
get_endpoint_args_for_item_schema()  : array<string|int, mixed>
Retrieves an array of endpoint arguments from the item schema for the controller.
get_item_response()  : array<string|int, mixed>
Serialize the saved item.
get_item_schema()  : array<string|int, mixed>
Returns the full item schema.
get_properties()  : array<string|int, mixed>
Item schema properties.
get_public_item_schema()  : array<string|int, mixed>
Returns the public schema.
force_schema_readonly()  : array<string|int, mixed>
Force all schema properties to be readonly.
format_variation_data()  : array<string|int, mixed>
Format variation data, for example convert slugs such as attribute_pa_size to Size.
get_extended_data()  : object
Returns extended data for a specific endpoint.
get_extended_schema()  : array<string|int, mixed>
Returns extended schema for a specific endpoint.
get_item_responses_from_schema()  : array<string|int, mixed>
Apply a schema get_item_response callback to an array of items and return the result.
get_recursive_sanitize_callback()  : function
Gets a function that sanitizes recursively.
get_recursive_schema_property_defaults()  : array<string|int, mixed>
Gets an array of schema defaults recursively.
get_recursive_validate_callback()  : function
Gets a function that validates recursively.
get_store_currency_properties()  : array<string|int, mixed>
Returns consistent currency schema used across endpoints for prices.
prepare_currency_response()  : array<string|int, mixed>
Adds currency data to an array of monetary values.
prepare_html_response()  : string|array<string|int, mixed>
Prepares HTML based content, such as post titles and content, for the API response.
prepare_money_response()  : string
Convert monetary values from WooCommerce to string based integers, using the smallest unit of a currency.
prepare_product_price_response()  : array<string|int, mixed>
Get an array of pricing data.
remove_arg_options()  : mixed
Recursive removal of arg_options.
get_image_html()  : string
Get the thumbnail image HTML for a shopper list item, falling back to the WooCommerce placeholder when the product has no image or has been deleted.
get_images()  : array<string|int, mixed>
Get the main image for a shopper list item.
get_name()  : string
Get the displayable name for the live product.
get_prices()  : array<string|int, mixed>
Compute live prices for the saved item.

Constants

Properties

Methods

get_endpoint_args_for_item_schema()

Retrieves an array of endpoint arguments from the item schema for the controller.

public get_endpoint_args_for_item_schema([string $method = WP_REST_Server::CREATABLE ]) : array<string|int, mixed>
Parameters
$method : string = WP_REST_Server::CREATABLE

Optional. HTTP method of the request.

Tags
uses
rest_get_endpoint_args_for_schema()
Return values
array<string|int, mixed>Endpoint arguments.

get_item_response()

Serialize the saved item.

public get_item_response(ShopperListItem $item) : array<string|int, mixed>
Parameters
$item : ShopperListItem

Saved item.

Return values
array<string|int, mixed>

force_schema_readonly()

Force all schema properties to be readonly.

protected force_schema_readonly(array<string|int, mixed> $properties) : array<string|int, mixed>
Parameters
$properties : array<string|int, mixed>

Schema.

Return values
array<string|int, mixed>Updated schema.

format_variation_data()

Format variation data, for example convert slugs such as attribute_pa_size to Size.

protected format_variation_data(array<string|int, mixed> $variation_data, WC_Product $product) : array<string|int, mixed>
Parameters
$variation_data : array<string|int, mixed>

Array of data from the cart.

$product : WC_Product

Product data.

Return values
array<string|int, mixed>

get_extended_data()

Returns extended data for a specific endpoint.

protected get_extended_data(string $endpoint, array<string|int, mixed> ...$passed_args) : object
Parameters
$endpoint : string

The endpoint identifier.

$passed_args : array<string|int, mixed>

An array of arguments to be passed to callbacks.

Return values
objectthe data that will get added.

get_extended_schema()

Returns extended schema for a specific endpoint.

protected get_extended_schema(string $endpoint, array<string|int, mixed> ...$passed_args) : array<string|int, mixed>
Parameters
$endpoint : string

The endpoint identifier.

$passed_args : array<string|int, mixed>

An array of arguments to be passed to callbacks.

Return values
array<string|int, mixed>the data that will get added.

get_item_responses_from_schema()

Apply a schema get_item_response callback to an array of items and return the result.

protected get_item_responses_from_schema(AbstractSchema $schema, array<string|int, mixed> $items) : array<string|int, mixed>
Parameters
$schema : AbstractSchema

Schema class instance.

$items : array<string|int, mixed>

Array of items.

Return values
array<string|int, mixed>Array of values from the callback function.

get_recursive_sanitize_callback()

Gets a function that sanitizes recursively.

protected get_recursive_sanitize_callback(array<string|int, mixed> $properties) : function
Parameters
$properties : array<string|int, mixed>

Schema property data.

Return values
functionAnonymous validation callback.

get_recursive_schema_property_defaults()

Gets an array of schema defaults recursively.

protected get_recursive_schema_property_defaults(array<string|int, mixed> $properties) : array<string|int, mixed>
Parameters
$properties : array<string|int, mixed>

Schema property data.

Return values
array<string|int, mixed>Array of defaults, pulled from arg_options

get_recursive_validate_callback()

Gets a function that validates recursively.

protected get_recursive_validate_callback(array<string|int, mixed> $properties) : function
Parameters
$properties : array<string|int, mixed>

Schema property data.

Return values
functionAnonymous validation callback.

get_store_currency_properties()

Returns consistent currency schema used across endpoints for prices.

protected get_store_currency_properties() : array<string|int, mixed>
Return values
array<string|int, mixed>

prepare_currency_response()

Adds currency data to an array of monetary values.

protected prepare_currency_response(array<string|int, mixed> $values) : array<string|int, mixed>
Parameters
$values : array<string|int, mixed>

Monetary amounts.

Return values
array<string|int, mixed>Monetary amounts with currency data appended.

prepare_html_response()

Prepares HTML based content, such as post titles and content, for the API response.

protected prepare_html_response(string|array<string|int, mixed> $response) : string|array<string|int, mixed>
Parameters
$response : string|array<string|int, mixed>

Data to format.

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

prepare_money_response()

Convert monetary values from WooCommerce to string based integers, using the smallest unit of a currency.

protected prepare_money_response(string|float $amount[, int $decimals = 2 ][, int $rounding_mode = PHP_ROUND_HALF_UP ]) : string
Parameters
$amount : string|float

Monetary amount with decimals.

$decimals : int = 2

Number of decimals the amount is formatted with.

$rounding_mode : int = PHP_ROUND_HALF_UP

Defaults to the PHP_ROUND_HALF_UP constant.

Return values
stringThe new amount.

prepare_product_price_response()

Get an array of pricing data.

protected prepare_product_price_response(WC_Product $product[, string $tax_display_mode = '' ]) : array<string|int, mixed>
Parameters
$product : WC_Product

Product instance.

$tax_display_mode : string = ''

If returned prices are incl or excl of tax.

Return values
array<string|int, mixed>

remove_arg_options()

Recursive removal of arg_options.

protected remove_arg_options(array<string|int, mixed> $properties) : mixed
Parameters
$properties : array<string|int, mixed>

Schema properties.

Return values
mixed

get_image_html()

Get the thumbnail image HTML for a shopper list item, falling back to the WooCommerce placeholder when the product has no image or has been deleted.

private get_image_html(WC_Product|null $product) : string

Pre-formatting on the server lets renderers (PHP SSR + JS hydration) consume one canonical string instead of each side composing the markup from the structured images array. Mirrors the pattern WC uses in ProductSchema::price_html / ProductImage::render.

Parameters
$product : WC_Product|null

Live product instance, or null for tombstones.

Return values
string

get_images()

Get the main image for a shopper list item.

private get_images(WC_Product $product) : array<string|int, mixed>

Returns the product's main image only — shopper list rows are compact and the gallery isn't needed at the row level.

Parameters
$product : WC_Product

Live product instance.

Return values
array<string|int, mixed>

get_prices()

Compute live prices for the saved item.

private get_prices(WC_Product $product) : array<string|int, mixed>

We don't extend ProductSchema because saved items aren't products. The shape here is a thin subset of cart-item prices.

Parameters
$product : WC_Product

Live product instance.

Return values
array<string|int, mixed>