我正在使用Wordpress和Woocommerce插件。此外,我安装了4种语言的WPML插件。另外,我正在使用Ionic 2 App,它连接到Shop with WP Rest API。我现在想在应用程序中获取翻译语言中的类别。以下是获取类别的代码。我尝试在字符串“/ wp-json / wc / v1 / products / categories”=>中添加 /?lang = it 。 “/ wp-json / wc / v1 / products / categories /?lang = it,但我每次都得到英语(原生)类别。我做的是我在https://resttesttest.com/尝试了这个,我能够提供特定的语言。
getStoreCategories(params) {
var service = this;
let url = service.appConfig.Shop_URL + "/wp-json/wc/v1/products/categories";
url = this.initUrl(url, params);
return new Promise(function (resolve, reject) {
service.http.get(service.initRequest(url, 'get')).catch(err => {
reject('error');
return Observable.throw(err);
}).map(res => res.json()).subscribe(data => {
if (data) {
service.cachedData = data;
resolve(service.cachedData);
}
else {
reject();
}
});
});
}
答案 0 :(得分:0)
对于使用WPML的rest API,如果您使用的是以下结构
,则您的网址会有所不同假设样本产品网址
如果网址结构为List
那么您的API调用将是
http://yoursite.com/ar/product/product-01
如果网址结构将语言代码视为let url = service.appConfig.Shop_URL + "{lang_code}" + "/wp-json/wc/v1/products/categories";
1> Query string
那么您的API调用将是
http://yoursite.com/product/product-01?lang=ar
P.S我不知道反应中的语法,但我已经给了你一个想法
答案 1 :(得分:0)
我可以解决这个问题。我在请求中传递了参数lang,如下所示:
instanceof Plant
答案 2 :(得分:0)
如果您使用WPML插件的多语言。您可以通过过滤默认的类别响应来使用多语言代码。
add_filter( 'woocommerce_rest_prepare_product_cat', 'change_product_categories_response', 10, 3 );
function change_product_categories_response( $response, $item, $request ) {
global $sitepress;
$lang = sanitize_text_field( $_REQUEST['lang'] );
$sitepress->switch_lang( $lang );
return $response;
}