【发布时间】:2018-03-15 16:39:04
【问题描述】:
我正在使用 wp rest api 在我的 ionic2 应用程序中提供 woocommerce 产品。所以,我想只提供 in_stock 参数为 true 的产品。我的插件在rest api和移动应用程序之间进行通信使用wp-json/wc/v1/products的版本1,但版本1没有提供in_stock参数,这就是我想使用wp-json/wc/v2/products的原因。这也没有任何问题。但是,我错过了我的 json 响应中的一些数据。我的插件中的以下函数将地理数据和地址添加到响应中
add_filter( 'woocommerce_rest_prepare_product', array( $this, 'get_vendor_product' ),10,3);
public function get_vendor_product($response, $post, $request){
if(isset($request['is_vendor']) && $request['is_vendor']==true){
$vendor_id=$request['vendor_id'];
$shop_name=WCV_Vendors::get_vendor_shop_name($vendor_id);
$shop_desc=get_user_meta( $vendor_id, 'pv_shop_description',true);
$response->data['shop_name']= $shop_name;
$response->data['shop_desc']= $shop_desc;
$response->data['vendor_id']= $request['vendor_id'];
$response->data['vendor_address']= get_user_meta($vendor_id,'sow_vendor_address',true);
$response->data['vendor_geocoding']= get_user_meta($vendor_id,'sow_vendor_geocoding',true);
}else if(isset($request['id']) && WCV_Vendors::is_vendor($post->post_author)){
$response->data['vendor_id']= $post->post_author;
$shop_name=WCV_Vendors::get_vendor_shop_name($post->post_author);
$shop_desc=get_user_meta( $post->post_author, 'pv_shop_description',true);
$response->data['shop_name']= $shop_name;
$response->data['shop_desc']= $shop_desc;
$response->data['vendor_address']= get_user_meta($post->post_author,'sow_vendor_address',true);
$response->data['vendor_geocoding']= get_user_meta($post->post_author,'sow_vendor_geocoding',true);
}else{
if(WCV_Vendors::is_vendor($post->post_author)){
$response->data['vendor_address']= get_user_meta($post->post_author,'sow_vendor_address',true);
$response->data['vendor_geocoding']= get_user_meta($post->post_author,'sow_vendor_geocoding',true);
}
}
return $response;
}
我无法确定,为什么当我使用版本 2 (wp-json/wc/v2/products) 时,地理数据不在响应中。版本 2 是否使用其他端点?
【问题讨论】:
-
您的地理数据保存在数据库中的什么位置?
-
在 postmeta 表中
-
很抱歉给您带来不便。在写这篇评论之前,我不明白你的问题。我认为您只想退回那些 in_stock 的产品。正确的?请参考下面我的回答。
-
你能回答如何只修改特定帖子的 wp-json 响应吗?请参阅:stackoverflow.com/questions/49330395/…