WC_REST_Product_Reviews_Controller::prepare_item_for_response
Prepare a single product review output for response.
Method of the class: WC_REST_Product_Reviews_Controller{}
Hooks from the method
Returns
WP_REST_Response. $response Response data.
Usage
$WC_REST_Product_Reviews_Controller = new WC_REST_Product_Reviews_Controller(); $WC_REST_Product_Reviews_Controller->prepare_item_for_response( $review, $request );
- $review(WP_Comment) (required)
- Product review object.
- $request(WP_REST_Request) (required)
- Request object.
WC_REST_Product_Reviews_Controller::prepare_item_for_response() WC REST Product Reviews Controller::prepare item for response code WC 10.3.6
public function prepare_item_for_response( $review, $request ) {
$context = ! empty( $request['context'] ) ? $request['context'] : 'view';
$fields = $this->get_fields_for_response( $request );
$data = array();
if ( in_array( 'id', $fields, true ) ) {
$data['id'] = (int) $review->comment_ID;
}
if ( in_array( 'date_created', $fields, true ) ) {
$data['date_created'] = wc_rest_prepare_date_response( $review->comment_date );
}
if ( in_array( 'date_created_gmt', $fields, true ) ) {
$data['date_created_gmt'] = wc_rest_prepare_date_response( $review->comment_date_gmt );
}
if ( in_array( 'product_id', $fields, true ) ) {
$data['product_id'] = (int) $review->comment_post_ID;
}
if ( in_array( 'product_name', $fields, true ) ) {
$data['product_name'] = get_the_title( (int) $review->comment_post_ID );
}
if ( in_array( 'product_permalink', $fields, true ) ) {
$data['product_permalink'] = get_permalink( (int) $review->comment_post_ID );
}
if ( in_array( 'status', $fields, true ) ) {
$data['status'] = $this->prepare_status_response( (string) $review->comment_approved );
}
if ( in_array( 'reviewer', $fields, true ) ) {
$data['reviewer'] = $review->comment_author;
}
if ( in_array( 'reviewer_email', $fields, true ) ) {
$data['reviewer_email'] = $review->comment_author_email;
}
if ( in_array( 'review', $fields, true ) ) {
$data['review'] = 'view' === $context ? wpautop( $review->comment_content ) : $review->comment_content;
}
if ( in_array( 'rating', $fields, true ) ) {
$data['rating'] = (int) get_comment_meta( $review->comment_ID, 'rating', true );
}
if ( in_array( 'verified', $fields, true ) ) {
$data['verified'] = wc_review_is_from_verified_owner( $review->comment_ID );
}
if ( in_array( 'reviewer_avatar_urls', $fields, true ) ) {
$data['reviewer_avatar_urls'] = rest_get_avatar_urls( $review->comment_author_email );
}
$data = $this->add_additional_fields_to_object( $data, $request );
$data = $this->filter_response_by_context( $data, $context );
// Wrap the data in a response object.
$response = rest_ensure_response( $data );
$response->add_links( $this->prepare_links( $review ) );
/**
* Filter product reviews object returned from the REST API.
*
* @param WP_REST_Response $response The response object.
* @param WP_Comment $review Product review object used to create response.
* @param WP_REST_Request $request Request object.
*/
return apply_filters( 'woocommerce_rest_prepare_product_review', $response, $review, $request );
}