我正在尝试创建一些定制的RESTAPI端点,这些端点可以获取具有一些特殊条件的产品,例如,一个端点用于特色产品。我试着用wc_get_products
功能如下:
add_action(\'rest_api_init\', \'my_custom_featured_product_endpoint\');
function my_custom_featured_product_endpoint() {
register_rest_route(\'custom-endpoints/v1\', \'/products/featured\', array(
\'methods\' => \'GET\',
\'callback\' => \'my_custom_featured_product_callback\',
));
}
function my_custom_featured_product_callback() {
$meta_query = WC()->query->get_meta_query();
$tax_query = WC()->query->get_tax_query();
$tax_query[] = array(
\'taxonomy\' => \'product_visibility\',
\'field\' => \'name\',
\'terms\' => \'featured\',
\'operator\' => \'IN\',
);
$args = array(
\'tax_query\' => $tax_query,
\'meta_query\' => $meta_query,
);
$result = wc_get_products($args);
return rest_ensure_response($result);
}
结果就是一些空数组。我可以买到那些老式的产品
get_posts
替换
wc_get_products
但是输出格式没有诸如“价格”、“图像”之类的属性。。。
那么有没有其他选择wc_get_products
用于自定义REST API端点,或者有什么方法可以使其工作?
附言:我通过如下更改回调函数来测试查询:
function my_custom_featured_product_callback() {
$result = wc_get_product(99);//Yes there is a product with ID 99
return rest_ensure_response($result);
}
结果保持不变,只是一个空数组。所以我认为问题一定在于
wc_get_products
和
wc_get_product
功能。也许
rest_api_init
这些功能不是合适的挂钩吗?