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.
Return
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 9.8.2
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 ); }