【发布时间】:2017-04-09 16:35:25
【问题描述】:
我正在寻找一种方法来扩展 wc-api/vX/orders/ 响应。我在结账时添加了多个自定义字段(例如:关系号、交货日期等)。这些元数据保存在订单中(wp_postmeta 表)。但是为什么它们没有与 api 一起返回呢?
通常您可以使用以下代码扩展 api 响应:
add_action( 'rest_api_init', 'custom_register_api_fields' );
function custom_register_api_fields() {
register_rest_field( 'shop_order','relation_number',
array(
'get_callback' => 'custom_api_meta_callback',
'update_callback' => null,
'schema' => null,
)
);
}
/**
*
* @param array $object Details of current post.
* @param string $field_name Name of field.
* @param WP_REST_Request $request Current request
*
* @return mixed
*/
function custom_api_meta_callback( $object, $field_name, $request ) {
return get_post_meta( $object[ 'id' ], $field_name, true );
}
但是当我测试响应(使用 Postman 和 php lib)时,my-website.co/wc-api/v2/orders 自定义元不可见。
有没有办法为 wc-api 注册 api 字段?
Tnx!
【问题讨论】:
-
你好@bas。我正在尝试更新订单上的自定义字段,我发现了这篇文章。你试过了吗? stackoverflow.com/questions/36369388/…
-
是的!这对我有用。
-
太棒了,我还通过使用上面答案中的方法来实现它,覆盖 C# 包装器 Order 类,如 cmets 中包装器的 Github 中所述。 :)
标签: wordpress rest api woocommerce meta