Wordpress 4.6, WPML 3.5, WooCommerce Multilingual 3.8.6 및 WooCommerce 버전 2.6.4를 사용하여 WooCommerce 다중 언어 저장소를 개발 중입니다.WMPL에서 특정 언어의 WooCommerce 제품 카테고리를 가져옵니다.
코드는 항상 주 언어로 범주를 반환하지만 지정된 언어에 대한 번역은 반환하지 않습니다. 그래서 제거 그것은 WPML 자동 분류 체계의 ID를 조정하는 것이 밝혀졌다
https://wpml.org/forums/topic/how-to-get-the-translated-taxonomy-object/
:이 링크의 해결책을 발견
private $lang;
function __construct($lang = "en") {
$this->lang = $lang;
}
private function getCategories() {
try {
$api = WC()->api->WC_API_Products;
$categories = $api->get_product_categories();
$products_categories = $categories["product_categories"];
foreach($products_categories as $category) {
$id = absint($category["id"]);
$category["name"] = $this->get_translated_term_name($id, "product_cat", $this->lang);
}
return $products_categories;
} catch (Exception $e) {
error_log("Caught $e");
}
}
private function get_translated_term_name($term_id, $taxonomy, $language) {
$translated_term_id = icl_object_id($term_id, $taxonomy, true, $language);
$translated_term_object = get_term_by('id', $translated_term_id, $taxonomy);
return $translated_term_object->name;
}
답장 주셔서 감사합니다,하지만 난 HTML로 후크 및 출력을 범주를 사용하지 않으려는 API 요청 – Waxren