如何限制woocommerce rest API的响应字段?

问题描述 投票:1回答:1

我需要限制woo commerce rest API的响应字段。例如:当我需要显示某个类别的产品时,我需要限制响应的字段。当我需要显示一个特定类别的产品时,我只需要产品id,图片和slug。我只需要产品id,图片和slug。所以,我想只获取特定的字段。有什么办法可以解决我的问题吗?

wordpress woocommerce-rest-api
1个回答
0
投票

你可以使用过滤器钩子 woocommerce_rest_prepare_product_object 来调整响应。

$wc_rest_api->get('products', array('category' => '1234', 'fields_in_response' => array(
    'id',
    'images',
    'slug'
) ) );

参数 fields_in_response 下面的代码必须放在服务器端(例如在function.php中)才能使用它。

add_filter('woocommerce_rest_prepare_product_object', 'at_wc_rest_api_adjust_response_data', 10, 3);

function at_wc_rest_api_adjust_response_data( $response, $object, $request ) {

    $params = $request->get_params();
    if ( ! $params['fields_in_response'] ) {
        return $response;
    }

    $data = $response->get_data();  
    $cropped_data = array();

    foreach ( $params['fields_in_response'] as $field ) {
        $cropped_data[ $field ] = $data[ $field ];
    }   

    $response->set_data( $cropped_data );   

    return $response;

}
© www.soinside.com 2019 - 2024. All rights reserved.