WooCommerce Code Reference

WC_REST_Orders_V2_Controller extends WC_REST_CRUD_Controller
in package

REST API Orders controller class.

Tags
extends

WC_REST_CRUD_Controller

Table of Contents

$hierarchical  : bool
If object is hierarchical.
$namespace  : string
Endpoint namespace.
$post_type  : string
Post type.
$public  : string
Controls visibility on frontend.
$request  : array<string|int, mixed>
Stores the request.
$rest_base  : string
Route base.
$_fields  : null|array<string|int, mixed>
Used to cache computed return fields.
$_request  : null|WP_REST_Request
Used to verify if cached fields are for correct request object.
batch_items()  : array<string|int, mixed>
Bulk create, update and delete items.
batch_items_permissions_check()  : bool|WP_Error
Check if a given request has access batch create, update and delete items.
create_item()  : WP_Error|WP_REST_Response
Create a single item.
create_item_permissions_check()  : WP_Error|bool
Check if a given request has access to create an item.
delete_item()  : WP_REST_Response|WP_Error
Delete a single item.
delete_item_permissions_check()  : bool|WP_Error
Check if a given request has access to delete an item.
fetch_fields_using_getters()  : array<string|int, mixed>
Get fields for an object if getter is defined.
get_collection_params()  : array<string|int, mixed>
Get the query params for collections.
get_endpoint_args_for_item_schema()  : array<string|int, mixed>
Compatibility functions for WP 5.5, since custom types are not supported anymore.
get_fields_for_response()  : array<string|int, mixed>
Gets an array of fields to be included on the response.
get_item()  : WP_Error|WP_REST_Response
Get a single item.
get_item_permissions_check()  : WP_Error|bool
Check if a given request has access to read an item.
get_item_schema()  : array<string|int, mixed>
Get the Order's schema, conforming to JSON Schema.
get_items()  : WP_Error|WP_REST_Response
Get a collection of posts.
get_items_permissions_check()  : WP_Error|bool
Check if a given request has access to read items.
get_public_batch_schema()  : array<string|int, mixed>
Get the batch schema, conforming to JSON Schema.
prepare_object_for_response()  : WP_REST_Response
Prepare a single order output for response.
register_routes()  : mixed
Register the routes for orders.
update_item()  : WP_Error|WP_REST_Response
Update a single post.
update_item_permissions_check()  : WP_Error|bool
Check if a given request has access to update an item.
validate_setting_checkbox_field()  : string|WP_Error
Validate checkbox based settings.
validate_setting_image_width_field()  : string|WP_Error
Validate image_width based settings.
validate_setting_multiselect_field()  : array<string|int, mixed>|WP_Error
Validate multiselect based settings.
validate_setting_radio_field()  : string|WP_Error
Validate radio based settings.
validate_setting_select_field()  : string|WP_Error
Validate select based settings.
validate_setting_text_field()  : string
Validate a text value for a text based setting.
validate_setting_textarea_field()  : string
Validate textarea based settings.
add_additional_fields_schema()  : array<string|int, mixed>
Add the schema from additional fields to an schema array.
add_meta_query()  : array<string|int, mixed>
Add meta query.
add_post_meta_fields()  : bool|WP_Error
Add post meta fields.
adjust_wp_5_5_datatype_compatibility()  : mixed
Change datatypes `date-time` to string, and `mixed` to composite of all built in types. This is required for maintaining forward compatibility with WP 5.5 since custom post types are not supported anymore.
check_batch_limit()  : bool|WP_Error
Check batch limit.
delete_post()  : mixed
Delete post.
filter_writable_props()  : bool
Only return writable props from schema.
get_allowed_query_vars()  : array<string|int, mixed>
Get all the WP Query vars that are allowed for the API request.
get_formatted_item_data()  : array<string|int, mixed>
Get formatted item data.
get_meta_data_for_response()  : array<string|int, mixed>
Limit the contents of the meta_data property based on certain request parameters.
get_normalized_rest_base()  : string
Get normalized rest base.
get_object()  : WC_Data|bool
Get object. Return false if object is not of required type.
get_objects()  : array<string|int, mixed>
Get objects.
get_order_item_data()  : array<string|int, mixed>
Expands an order item to get its data.
get_order_statuses()  : array<string|int, mixed>
Get order statuses without prefixes.
get_permalink()  : string
Get object permalink.
get_product_id()  : int
Gets the product ID from the SKU or posted ID.
item_is_null()  : bool
Helper method to check if the resource ID associated with the provided item is null.
maybe_set_item_meta_data()  : mixed
Maybe set item meta if posted.
maybe_set_item_prop()  : mixed
Maybe set an item prop if the value was posted.
maybe_set_item_props()  : mixed
Maybe set item props if the values were posted.
prepare_coupon_lines()  : WC_Order_Item_Coupon
Create or update an order coupon.
prepare_fee_lines()  : WC_Order_Item_Fee
Create or update an order fee.
prepare_items_query()  : array<string|int, mixed>
Determine the allowed query_vars for a get_items() response and prepare for WP_Query.
prepare_line_items()  : WC_Order_Item_Product
Create or update a line item.
prepare_links()  : array<string|int, mixed>
Prepare links for the request.
prepare_object_for_database()  : WP_Error|WC_Data
Prepare a single order for create or update.
prepare_objects_query()  : array<string|int, mixed>
Prepare objects query.
prepare_shipping_lines()  : WC_Order_Item_Shipping
Create or update an order shipping method.
save_object()  : WC_Data|WP_Error
Save an object data.
set_item()  : mixed
Wrapper method to create/update order items.
update_address()  : mixed
Update address.
update_post_meta_fields()  : bool|WP_Error
Update post meta fields.
filter_internal_meta_keys()  : array<string|int, mixed>
With HPOS, few internal meta keys such as _billing_address_index, _shipping_address_index are not considered internal anymore (since most internal keys were flattened into dedicated columns).
merge_meta_item_with_formatted_meta_display_attributes()  : array<string|int, mixed>
Merge the `$formatted_meta_data` `display_key` and `display_value` attribute values into the corresponding {@link WC_Meta_Data}. Returns the merged array.

Properties

Methods

batch_items()

Bulk create, update and delete items.

public batch_items(WP_REST_Request $request) : array<string|int, mixed>
Parameters
$request : WP_REST_Request

Full details about the request.

Return values
array<string|int, mixed>Of WP_Error or WP_REST_Response.

batch_items_permissions_check()

Check if a given request has access batch create, update and delete items.

public batch_items_permissions_check(WP_REST_Request $request) : bool|WP_Error
Parameters
$request : WP_REST_Request

Full details about the request.

Return values
bool|WP_Error

fetch_fields_using_getters()

Get fields for an object if getter is defined.

public fetch_fields_using_getters(object $object, string $context, array<string|int, mixed> $fields) : array<string|int, mixed>
Parameters
$object : object

Object we are fetching response for.

$context : string

Context of the request. Can be view or edit.

$fields : array<string|int, mixed>

List of fields to fetch.

Return values
array<string|int, mixed>Data fetched from getters.

get_endpoint_args_for_item_schema()

Compatibility functions for WP 5.5, since custom types are not supported anymore.

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

See @link https://core.trac.wordpress.org/changeset/48306

Parameters
$method : string = WP_REST_Server::CREATABLE

Optional. HTTP method of the request.

Return values
array<string|int, mixed>Endpoint arguments.

get_fields_for_response()

Gets an array of fields to be included on the response.

public get_fields_for_response(WP_REST_Request $request) : array<string|int, mixed>

Included fields are based on item schema and _fields= request argument. Updated from WordPress 5.3, included into this class to support old versions.

Parameters
$request : WP_REST_Request

Full details about the request.

Tags
since
3.5.0
Return values
array<string|int, mixed>Fields to be included in the response.

validate_setting_checkbox_field()

Validate checkbox based settings.

public validate_setting_checkbox_field(string $value, array<string|int, mixed> $setting) : string|WP_Error
Parameters
$value : string

Value.

$setting : array<string|int, mixed>

Setting.

Tags
since
3.0.0
Return values
string|WP_Error

validate_setting_image_width_field()

Validate image_width based settings.

public validate_setting_image_width_field(array<string|int, mixed> $values, array<string|int, mixed> $setting) : string|WP_Error
Parameters
$values : array<string|int, mixed>

Values.

$setting : array<string|int, mixed>

Setting.

Tags
since
3.0.0
Return values
string|WP_Error

validate_setting_multiselect_field()

Validate multiselect based settings.

public validate_setting_multiselect_field(array<string|int, mixed> $values, array<string|int, mixed> $setting) : array<string|int, mixed>|WP_Error
Parameters
$values : array<string|int, mixed>

Values.

$setting : array<string|int, mixed>

Setting.

Tags
since
3.0.0
Return values
array<string|int, mixed>|WP_Error

validate_setting_radio_field()

Validate radio based settings.

public validate_setting_radio_field(string $value, array<string|int, mixed> $setting) : string|WP_Error
Parameters
$value : string

Value.

$setting : array<string|int, mixed>

Setting.

Tags
since
3.0.0
Return values
string|WP_Error

validate_setting_select_field()

Validate select based settings.

public validate_setting_select_field(string $value, array<string|int, mixed> $setting) : string|WP_Error
Parameters
$value : string

Value.

$setting : array<string|int, mixed>

Setting.

Tags
since
3.0.0
Return values
string|WP_Error

validate_setting_text_field()

Validate a text value for a text based setting.

public validate_setting_text_field(string $value, array<string|int, mixed> $setting) : string
Parameters
$value : string

Value.

$setting : array<string|int, mixed>

Setting.

Tags
since
3.0.0
Return values
string

validate_setting_textarea_field()

Validate textarea based settings.

public validate_setting_textarea_field(string $value, array<string|int, mixed> $setting) : string
Parameters
$value : string

Value.

$setting : array<string|int, mixed>

Setting.

Tags
since
3.0.0
Return values
string

add_additional_fields_schema()

Add the schema from additional fields to an schema array.

protected add_additional_fields_schema(array<string|int, mixed> $schema) : array<string|int, mixed>

The type of object is inferred from the passed schema.

Parameters
$schema : array<string|int, mixed>

Schema array.

Return values
array<string|int, mixed>

add_meta_query()

Add meta query.

protected add_meta_query(array<string|int, mixed> $args, array<string|int, mixed> $meta_query) : array<string|int, mixed>
Parameters
$args : array<string|int, mixed>

Query args.

$meta_query : array<string|int, mixed>

Meta query.

Tags
since
3.0.0
Return values
array<string|int, mixed>

adjust_wp_5_5_datatype_compatibility()

Change datatypes `date-time` to string, and `mixed` to composite of all built in types. This is required for maintaining forward compatibility with WP 5.5 since custom post types are not supported anymore.

protected adjust_wp_5_5_datatype_compatibility(array<string|int, mixed> $endpoint_args) : mixed

See @link https://core.trac.wordpress.org/changeset/48306

We still use the 'mixed' type, since if we convert to composite type everywhere, it won't work in 5.4 anymore because they require to define the full schema.

Parameters
$endpoint_args : array<string|int, mixed>

Schema with datatypes to convert.

Return values
mixedSchema with converted datatype.

get_meta_data_for_response()

Limit the contents of the meta_data property based on certain request parameters.

protected get_meta_data_for_response(WP_REST_Request $request, array<string|int, mixed> $meta_data) : array<string|int, mixed>

Note that if both include_meta and exclude_meta are present in the request, include_meta will take precedence.

Parameters
$request : WP_REST_Request

The request.

$meta_data : array<string|int, mixed>

All of the meta data for an object.

Return values
array<string|int, mixed>

item_is_null()

Helper method to check if the resource ID associated with the provided item is null.

protected item_is_null(array<string|int, mixed> $item) : bool

Items can be deleted by setting the resource ID to null.

Parameters
$item : array<string|int, mixed>

Item provided in the request body.

Return values
boolTrue if the item resource ID is null, false otherwise.

prepare_coupon_lines()

Create or update an order coupon.

protected prepare_coupon_lines(array<string|int, mixed> $posted[, string $action = 'create' ][, object $item = null ]) : WC_Order_Item_Coupon
Parameters
$posted : array<string|int, mixed>

Item data.

$action : string = 'create'

'create' to add coupon or 'update' to update it.

$item : object = null

Passed when updating an item. Null during creation.

Tags
throws
WC_REST_Exception

Invalid data, server error.

Return values
WC_Order_Item_Coupon

prepare_fee_lines()

Create or update an order fee.

protected prepare_fee_lines(array<string|int, mixed> $posted[, string $action = 'create' ][, object $item = null ]) : WC_Order_Item_Fee
Parameters
$posted : array<string|int, mixed>

Item data.

$action : string = 'create'

'create' to add fee or 'update' to update it.

$item : object = null

Passed when updating an item. Null during creation.

Tags
throws
WC_REST_Exception

Invalid data, server error.

Return values
WC_Order_Item_Fee

prepare_items_query()

Determine the allowed query_vars for a get_items() response and prepare for WP_Query.

protected prepare_items_query([array<string|int, mixed> $prepared_args = array() ][, WP_REST_Request $request = null ]) : array<string|int, mixed>
Parameters
$prepared_args : array<string|int, mixed> = array()

Prepared arguments.

$request : WP_REST_Request = null

Request object.

Return values
array<string|int, mixed>$query_args

prepare_line_items()

Create or update a line item.

protected prepare_line_items(array<string|int, mixed> $posted[, string $action = 'create' ][, object $item = null ]) : WC_Order_Item_Product
Parameters
$posted : array<string|int, mixed>

Line item data.

$action : string = 'create'

'create' to add line item or 'update' to update it.

$item : object = null

Passed when updating an item. Null during creation.

Tags
throws
WC_REST_Exception

Invalid data, server error.

Return values
WC_Order_Item_Product

prepare_shipping_lines()

Create or update an order shipping method.

protected prepare_shipping_lines(array<string|int, mixed> $posted[, string $action = 'create' ][, object $item = null ]) : WC_Order_Item_Shipping
Parameters
$posted : array<string|int, mixed>

$shipping Item data.

$action : string = 'create'

'create' to add shipping or 'update' to update it.

$item : object = null

Passed when updating an item. Null during creation.

Tags
throws
WC_REST_Exception

Invalid data, server error.

Return values
WC_Order_Item_Shipping

set_item()

Wrapper method to create/update order items.

protected set_item(WC_Order $order, string $item_type, array<string|int, mixed> $posted) : mixed

When updating, the item ID provided is checked to ensure it is associated with the order.

Parameters
$order : WC_Order

order object.

$item_type : string

The item type.

$posted : array<string|int, mixed>

item provided in the request body.

Tags
throws
WC_REST_Exception

If item ID is not associated with order.

Return values
mixed

filter_internal_meta_keys()

With HPOS, few internal meta keys such as _billing_address_index, _shipping_address_index are not considered internal anymore (since most internal keys were flattened into dedicated columns).

private filter_internal_meta_keys(array<string|int, mixed> $meta_data) : array<string|int, mixed>

This function helps in filtering out any remaining internal meta keys with HPOS is enabled.

Parameters
$meta_data : array<string|int, mixed>

Order meta data.

Return values
array<string|int, mixed>Filtered order meta data.

merge_meta_item_with_formatted_meta_display_attributes()

Merge the `$formatted_meta_data` `display_key` and `display_value` attribute values into the corresponding {@link WC_Meta_Data}. Returns the merged array.

private merge_meta_item_with_formatted_meta_display_attributes(WC_Meta_Data $meta_item, array<string|int, mixed> $formatted_meta_data) : array<string|int, mixed>
Parameters
$meta_item : WC_Meta_Data

An object from {@link}.

$formatted_meta_data : array<string|int, mixed>

An object result from {@link}. The keys are the IDs of {@link}.

Return values
array<string|int, mixed>