英文:
python, woocommerce: how to add categories with translations?
问题
我需要一个Python代码片段来创建带有翻译的分类。Python 3.8与WooCommerce包。
WordPress与WooCommerce插件版本7.3
WPML多语言CMS: 4.5.14
我有这个Python代码片段:
from woocommerce import API
# 创建API类的实例
wcapi = API(
url="FQDN",
consumer_key="yourconsumerkey",
consumer_secret="yourconsumersecret",
wp_api=True,
version="wc/v3"
)
# 为主语言创建包含分类数据的字典
category_data_en = {
"name": "Category Name in English",
"parent": 0,
"meta_data": [
{
"key": "_wpml_language",
"value": "en"
},
{
"key": "_wpml_translation_status",
"value": "0"
},
{
"key": "_wpml_element_type",
"value": "tax_category"
}
]
}
# 使用WooCommerce API为主语言创建分类
new_category_en = wcapi.post("products/categories", category_data_en).json()
# 为翻译创建包含分类数据的字典
category_data_pl = {
"name": "Category Name in Polish",
"meta_data": [
{
"key": "_wpml_language",
"value": "pl"
},
{
"key": "_wpml_translation_of",
"value": new_category_en.get("id")
},
{
"key": "_wpml_translation_status",
"value": "1"
},
{
"key": "_wpml_element_type",
"value": "tax_category"
}
]
}
# 使用WooCommerce API创建翻译
new_category_pl = wcapi.post("products/categories", category_data_pl).json()
它在我的网站上创建了两个英语语言的分类。我做错了什么?
我可以看到在我的WPML插件设置中有以下信息:
WooCommerce多语言未安装
是否需要安装它才能正确创建这些分类?
英文:
I need a python snippet to create categories with translation.
Python 3.8 with woocommerce package.
WordPress with woocommerce plugin in version 7.3
WPML Multilingual CMS: 4.5.14
I have this snippet in python:
from woocommerce import API
# create an instance of the API class
wcapi = API(
url="FQDN",
consumer_key="yourconsumerkey",
consumer_secret="yourconsumersecret",
wp_api=True,
version="wc/v3"
)
# create a dictionary with the category data for the main language
category_data_en = {
"name": "Category Name in English",
"parent": 0,
"meta_data": [
{
"key": "_wpml_language",
"value": "en"
},
{
"key": "_wpml_translation_status",
"value": "0"
},
{
"key": "_wpml_element_type",
"value": "tax_category"
}
]
}
# create the category using the WooCommerce API for the main language
new_category_en = wcapi.post("products/categories", category_data_en).json()
# create a dictionary with the category data for the translation
category_data_pl = {
"name": "Category Name in Polish",
"meta_data": [
{
"key": "_wpml_language",
"value": "pl"
},
{
"key": "_wpml_translation_of",
"value": new_category_en.get("id")
},
{
"key": "_wpml_translation_status",
"value": "1"
},
{
"key": "_wpml_element_type",
"value": "tax_category"
}
]
}
# create the translation using the WooCommerce API
new_category_pl = wcapi.post("products/categories", category_data_pl).json()
and it creates two categories in the English language on my website. What am I doing wrong?
I can see that in my WPML plugin setting there is the info:
WooCommerce Multilingual Not installed
Is it necessary to install it to get those categories created properly?
答案1
得分: 0
我要做的是:
- 在“en”语言中创建类别(添加:'lang':'en')
- 我必须遍历这些类别并在pl中创建新类别(添加:'lang':'pl'和'translation_of': id_category_en)
英文:
What I had to do is:
- create categories in 'en' language (added: 'lang':'en')
- I had to loop over those categories and create new ones in pl (added: 'lang':'pl' and 'translation_of': id_category_en
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论