Products_Controller::prepare_item_for_response( WP_Post $post, WP_REST_Request $request )
Summary
Prepares a single product output for response.
Parameters
- $post
-
(WP_Post) (Required) Post object.
- $request
-
(WP_REST_Request) (Required) Request object.
Return
(WP_REST_Response) Response object.
Source
File: src/BigCommerce/Rest/Products_Controller.php
public function prepare_item_for_response( $post, $request ) { $backup_post = isset( $GLOBALS['post'] ) ? $GLOBALS['post'] : null; $product = new Product( $post->ID ); $GLOBALS['post'] = $post; setup_postdata( $post ); $schema = $this->get_item_schema(); // Base fields for every post. $data = []; foreach ( $schema['properties'] as $key => $meta ) { if ( empty( $meta ) ) { continue; } $data[ $key ] = $this->get_item_property( $product, $key, $meta ); } $context = ! empty( $request['context'] ) ? $request['context'] : 'view'; $data = $this->add_additional_fields_to_object( $data, $request ); $data = $this->filter_response_by_context( $data, $context ); $GLOBALS['post'] = $backup_post; wp_reset_postdata(); // Wrap the data in a response object. $response = rest_ensure_response( $data ); /** * Filters the product data for a response. * * @param \WP_REST_Response $response The response object. * @param \WP_Post $post Post object. * @param \WP_REST_Request $request Request object. */ return apply_filters( 'bigcommerce/rest/products/prepare_item_for_response', $response, $post, $request ); }