WC_REST_Controller::get_meta_data_for_response
Limit the contents of the meta_data property based on certain request parameters.
Note that if both include_meta and exclude_meta are present in the request, include_meta will take precedence.
Method of the class: WC_REST_Controller{}
No Hooks.
Returns
Array.
Usage
// protected - for code of main (parent) or child class $result = $this->get_meta_data_for_response( $request, $meta_data );
- $request(WP_REST_Request) (required)
- The request.
- $meta_data(array) (required)
- All of the meta data for an object.
WC_REST_Controller::get_meta_data_for_response() WC REST Controller::get meta data for response code WC 10.7.0
protected function get_meta_data_for_response( $request, $meta_data ) {
$fields = $this->get_fields_for_response( $request );
if ( ! in_array( 'meta_data', $fields, true ) ) {
return array();
}
$include = (array) $request['include_meta'];
$exclude = (array) $request['exclude_meta'];
if ( ! empty( $include ) ) {
$meta_data = array_filter(
$meta_data,
function ( WC_Meta_Data $item ) use ( $include ) {
$data = $item->get_data();
return in_array( $data['key'], $include, true );
}
);
} elseif ( ! empty( $exclude ) ) {
$meta_data = array_filter(
$meta_data,
function ( WC_Meta_Data $item ) use ( $exclude ) {
$data = $item->get_data();
return ! in_array( $data['key'], $exclude, true );
}
);
}
// Ensure the array indexes are reset so it doesn't get converted to an object in JSON.
return array_values( $meta_data );
}