我正在使用woocommerce rest API v1构建一个使用AJAX的商店页面。
我的尝试:
为woocommerce产品创建自定义分类后,将这些分类的show\\u in\\u rest设置为true,并向woocommerce rest api发出如下请求/wp-json/wc/v1/products/?consumer_key=[actual_consumer_key]&consumer_secret=[actual_consumer_secret]
我所期望的:
每个产品的产品列表及其随类别、标记和自定义分类法的变化。
我得到的:
包含所有内容的产品列表BUT NOT my custom taxonomies
我猜:
分类法绑定到wordpress post,而woocommerce rest api像实例WC\\U产品类一样返回JSON数据。但如果是这种情况,为什么我有类别和标签?(默认分类法)
我用AJAX提取数据,所以get_terms
不是选项。我不能按产品提出一个要求来获得分类法,我需要所有东西都打包好。
是否需要为此创建自定义端点?
如果我不清楚,请告诉我。
干杯
编辑:我刚刚发现wordpress REST API(不是woocommerce)允许我检索自定义分类法和产品。我对此有几个问题:
我没有所有的产品,没有关于产品的任何信息,比如它的变化,或者价格,我不想在Woocommerce和Wordpress rest API上提出一个请求来获取所有数据,自定义端点是唯一的方法吗?
最合适的回答,由SO网友:Maayam 整理而成
我最终找到了一种使用过滤器的方法。我不知道REST API响应有过滤器。。。以下是我的解决方案:
add_filter( \'woocommerce_rest_prepare_product\', \'custom_products_api_data\', 90, 2 );
function custom_products_api_data( $response, $post ) {
// retrieve a custom field and add it to API response
$response->data[\'custom_taxonomy1\'] = wp_get_post_terms( $post->ID, \'custom_taxonomy1\', [] );
$response->data[\'custom_taxonomy2\'] = wp_get_post_terms( $post->ID, \'custom_taxonomy2\', [] );
return $response;
}
`来源:
https://francescocarlucci.com/woocommerce-api-add-custom-data-default-endpoints/