使用 Gutenberg getEntityRecords 获取 woocommerce 产品类别

Get woocommerce product category using Gutenberg getEntityRecords

是否可以使用 Gutenberg getEntityRecords() 获取所有产品类别?

我找到了获取 post 类别的代码如下

var query = {per_page: 100}
categoriesList =  getEntityRecords( 'taxonomy', 'category', query );

我可以修改上面的代码来获取所有 woocommerce 产品类别吗?

我也搜索过同样的东西。但最后我决定使用 apiFetch 来完成这个任务(遵循 woocommerce-gutenberg-products-block 插件)。

示例用例:

const apiFetch = wp.apiFetch;
const { addQueryArgs } = wp.url;

const productCategories = (queryArgs) => {
    return apiFetch({
        path: addQueryArgs(`wc/store/products/categories`, {
            per_page: 0,
            ...queryArgs,
        }),
    });
};

productCategories().then((categories) => {
        console.log(categories);
});

您实际上已经非常接近 getEntityRecords 开始工作了。唯一的问题是产品类别与 post 类别不同。

这是一个使用 useSelect 钩子的完整示例:

import { useSelect } from "@wordpress/data";

const { productCategories, isSearching } = useSelect((select) => {
    const { getEntityRecords, isResolving } = select("core");
    const query = { per_page: 100 };

    return {
        productCategories: getEntityRecords("taxonomy", "product_cat", query),
        isSearching: isResolving("getEntityRecords", [
            "taxonomy",
            "product_cat",
            query,
        ]),
    };
});