如何修改WCMP REST API响应?

时间:2020-04-29 作者:Ahmed El-Atab

我试过register_rest_field() 修改WCMP插件的Rest API响应,但该函数似乎只适用于默认的wordpress Rest API(wp/v2)。

修改的目的是,供应商数据(从该URL获取…wp json/wcmp/v1/vendors)不包括每个供应商的图像URL,而是返回图像ID,我不想再发出一个API请求,只是为了根据ID获取图像URL。

添加_embed 参数不起作用。

如何修改WCMP的响应,如register_rest_field() 是否使用默认REST API以包含图像URL?

1 个回复
最合适的回答,由SO网友:Ahmed El-Atab 整理而成

我终于解决了!

在插件“dc woocommerce multi-vendor”的源代码中,我查看了类“class wcmp rest vendors controller.php”,并发现他们使用此过滤器来收集响应字段:apply_filters("wcmp_rest_prepare_vendor_object_args", array(...));

在函数中。php的子主题我编写了以下代码来编辑过滤器:

function modify_rest_api_vendor_response( $arg ) {
    $arg["shop"]["image"]=wp_get_attachment_url($arg["shop"]["image"]);
    return $arg;
}
add_filter( \'wcmp_rest_prepare_vendor_object_args\', \'modify_rest_api_vendor_response\', 10, 3 );
现在我可以获取图像URL

Hope that it could help somone...