ItemSchema
extends ProductSchema
in package
ItemSchema class.
Table of Contents
- EXTENDING_KEY = 'extensions'
- Extending key that gets added to endpoint.
- IDENTIFIER = 'product'
- 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>|stdClass
- Returns the full item response.
- 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.
- filter_valid_attribute() : bool
- Returns true if the given attribute is valid.
- filter_variation_attribute() : bool
- Returns true if the given attribute is valid and used for variations.
- force_schema_readonly() : array<string|int, mixed>
- Force all schema properties to be readonly.
- get_attributes() : array<string|int, mixed>
- Get list of product attributes and attribute terms.
- 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_images() : array<string|int, mixed>
- Get list of product images.
- 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_low_stock_remaining() : int|null
- If a product has low stock, return the remaining stock amount for display.
- get_price_function_from_tax_display_mode() : string
- WooCommerce can return prices including or excluding tax; choose the correct method based on tax display mode.
- get_price_range() : object|null
- Get price range from certain product types.
- 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_remaining_stock() : int|null
- Gets remaining stock amount for a product.
- get_store_currency_properties() : array<string|int, mixed>
- Returns consistent currency schema used across endpoints for prices.
- get_tax_display_mode() : string
- WooCommerce can return prices including or excluding tax; choose the correct method based on tax display mode.
- get_term_list() : array<string|int, mixed>
- Returns a list of terms assigned to the product.
- get_variations() : mixed
- Get variation IDs and attributes from the DB.
- 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_attribute_taxonomy_value() : object
- Prepare an attribute term for the response.
- prepare_product_attribute_value() : object
- Prepare an attribute term for the response.
- prepare_product_price_response() : array<string|int, mixed>
- Get an array of pricing data.
- remove_arg_options() : mixed
- Recursive removal of arg_options.
Constants
EXTENDING_KEY
Extending key that gets added to endpoint.
public
string
EXTENDING_KEY
= 'extensions'
IDENTIFIER
The schema item identifier.
public
string
IDENTIFIER
= 'product'
Properties
$controller
Schema Controller instance.
protected
SchemaController
$controller
$extend
Rest extend instance.
protected
ExtendSchema
$extend
$image_attachment_schema
Image attachment schema instance.
protected
ImageAttachmentSchema
$image_attachment_schema
$title
The schema item name.
protected
string
$title
= 'Schema'
Methods
__construct()
Constructor.
public
__construct(ExtendSchema $extend, SchemaController $controller) : mixed
Parameters
- $extend : ExtendSchema
-
Rest Extending instance.
- $controller : SchemaController
-
Schema Controller instance.
Return values
mixed —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
Return values
array<string|int, mixed> — Endpoint arguments.get_item_response()
Returns the full item response.
public
get_item_response(mixed $item) : array<string|int, mixed>|stdClass
Parameters
- $item : mixed
-
Item to get response for.
Return values
array<string|int, mixed>|stdClass —get_item_schema()
Returns the full item schema.
public
get_item_schema() : array<string|int, mixed>
Return values
array<string|int, mixed> —get_properties()
Item schema properties.
public
get_properties() : array<string|int, mixed>
Return values
array<string|int, mixed> —get_public_item_schema()
Returns the public schema.
public
get_public_item_schema() : array<string|int, mixed>
Return values
array<string|int, mixed> —filter_valid_attribute()
Returns true if the given attribute is valid.
protected
filter_valid_attribute(mixed $attribute) : bool
Parameters
- $attribute : mixed
-
Object or variable to check.
Return values
bool —filter_variation_attribute()
Returns true if the given attribute is valid and used for variations.
protected
filter_variation_attribute(mixed $attribute) : bool
Parameters
- $attribute : mixed
-
Object or variable to check.
Return values
bool —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.get_attributes()
Get list of product attributes and attribute terms.
protected
get_attributes(WC_Product $product) : array<string|int, mixed>
Parameters
- $product : WC_Product
-
Product instance.
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
object — the 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 identifer.
- $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_images()
Get list of product images.
protected
get_images(WC_Product $product) : array<string|int, mixed>
Parameters
- $product : WC_Product
-
Product instance.
Return values
array<string|int, mixed> —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_low_stock_remaining()
If a product has low stock, return the remaining stock amount for display.
protected
get_low_stock_remaining(WC_Product $product) : int|null
Parameters
- $product : WC_Product
-
Product instance.
Return values
int|null —get_price_function_from_tax_display_mode()
WooCommerce can return prices including or excluding tax; choose the correct method based on tax display mode.
protected
get_price_function_from_tax_display_mode(string $tax_display_mode) : string
Parameters
- $tax_display_mode : string
-
If returned prices are incl or excl of tax.
Return values
string — Function name.get_price_range()
Get price range from certain product types.
protected
get_price_range(WC_Product $product[, string $tax_display_mode = '' ]) : object|null
Parameters
- $product : WC_Product
-
Product instance.
- $tax_display_mode : string = ''
-
If returned prices are incl or excl of tax.
Return values
object|null —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
function — Anonymous 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_optionsget_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
function — Anonymous validation callback.get_remaining_stock()
Gets remaining stock amount for a product.
protected
get_remaining_stock(WC_Product $product) : int|null
Parameters
- $product : WC_Product
-
Product instance.
Return values
int|null —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> —get_tax_display_mode()
WooCommerce can return prices including or excluding tax; choose the correct method based on tax display mode.
protected
get_tax_display_mode([string $tax_display_mode = '' ]) : string
Parameters
- $tax_display_mode : string = ''
-
Provided tax display mode.
Return values
string — Valid tax display mode.get_term_list()
Returns a list of terms assigned to the product.
protected
get_term_list(WC_Product $product[, string $taxonomy = '' ]) : array<string|int, mixed>
Parameters
- $product : WC_Product
-
Product object.
- $taxonomy : string = ''
-
Taxonomy name.
Return values
array<string|int, mixed> — Array of terms (id, name, slug).get_variations()
Get variation IDs and attributes from the DB.
protected
get_variations(WC_Product $product) : mixed
Parameters
- $product : WC_Product
-
Product instance.
Tags
Return values
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
string — The new amount.prepare_product_attribute_taxonomy_value()
Prepare an attribute term for the response.
protected
prepare_product_attribute_taxonomy_value(WP_Term $term) : object
Parameters
- $term : WP_Term
-
Term object.
Return values
object —prepare_product_attribute_value()
Prepare an attribute term for the response.
protected
prepare_product_attribute_value(string $name, int $id[, string $slug = '' ]) : object
Parameters
- $name : string
-
Attribute term name.
- $id : int
-
Attribute term ID.
- $slug : string = ''
-
Attribute term slug.
Return values
object —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.