Skip to content

Instantly share code, notes, and snippets.

@iyut
Last active July 16, 2021 08:12
Show Gist options
  • Save iyut/68bae104e7b0e6695554531ff437a1ce to your computer and use it in GitHub Desktop.
Save iyut/68bae104e7b0e6695554531ff437a1ce to your computer and use it in GitHub Desktop.
Manipulate WC Order REST API Response
/**
* Add the barcode URL in REST API responses.
* @since 1.3.24
* @param object $response WP_REST_Response
* @param object $object Order Object
* @param object $request The request made to WC-API
* @return object $response
*/
function add_barcode_url_in_api_response ( $response, $object, $request ) {
if ( is_a( $response, 'WP_REST_Response' ) && is_a( $object, 'WC_Order' ) ) {
$barcode_url = $this->barcode_url( $object->get_id() );
if ( ! empty( $barcode_url ) ) {
$response->data['barcode_url'] = $barcode_url;
}
}
return $response;
}
add_filter( 'woocommerce_rest_prepare_shop_order_object', 'add_barcode_url_in_api_response', 30, 3 );
/**
* Remove the _barcode_image metadata from REST API responses.
* @since 1.3.1
* @param object $response WP_REST_Response
* @param object $object Order Object
* @param object $request The request made to WC-API
* @return object $response
*/
function remove_barcode_from_api_response ( $response, $object, $request ) {
if ( is_a( $response, 'WP_REST_Response' ) && isset( $response->data['meta_data'] ) ) {
if ( 0 < count( $response->data['meta_data'] ) ) {
foreach ( $response->data['meta_data'] as $k => $v ) {
if ( '_barcode_image' == $v->key ) {
unset( $response->data['meta_data'][$k] );
}
}
}
}
return $response;
}
add_filter( 'woocommerce_rest_prepare_shop_order_object', 'remove_barcode_from_api_response', 30, 3 );
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment