如何在WooCommerce REST API中显示产品自定义分类

时间:2018-10-25 作者:Maayam

我正在使用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上提出一个请求来获取所有数据,自定义端点是唯一的方法吗?

1 个回复
最合适的回答,由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/

结束

相关推荐

Php致命错误:无法将WP_REST_RESPONSE类型的对象用作wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php中

我向WordPress添加了一个自定义端点,如下所示: add_action( \'rest_api_init\', function () { register_rest_route( \'menc/v1\', \'/crosscat/(?P[\\w-]+)/(?P[\\w-]+)\', array( \'methods\' => \'GET\', \'callback\' => \'dept_cat_api\',&#x