我在woocommerce有一个中文存储的产品,
产品有不同的颜色变化,woocommerce似乎encode了颜色属性的属性分类。在英文产品中,它会简单地将分类法存储为pa_color,但在我的中文产品中,woocommerce将分类法存储为pa_191386aef4bc441e,pa_后面的字母和数字是字符串颜色的encoded form,在英语中翻译为颜色,因此术语分类pa_191386aef4bc441e在英语中仅表示pa_color。
我试图弄清楚woocommerce如何将中文字符串颜色编码为191386aef4bc441e,以便我可以将文本解码回有效的中文字符串,最终目标是将产品属性转换为英语,并用替换的英文值替换中文值。
woocommerce如何对产品属性进行编码,以便我可以将其解码回原始字符串?
请看下图,箭头指向的文本是存储为pa_191386aef4bc441e的中文字符串

下面是产品数据在woocommerce数据库上的外观。
该帖子的ID为1347

术语

术语关系

术语分类法

发布于 2020-09-11 03:13:49
我在另一种语言(希伯来语)中遇到了同样的问题,但我注意到,如果您以编程的方式创建属性,则不会出现此问题,例如,在下面的代码中
`<?php
require(dirname(__FILE__) . '/wp-load.php');
//Create main product
$product = new WC_Product_Variable();
$att_var = array();
//Create the attribute object with name weight
$attribute = new WC_Product_Attribute();
$attribute->set_id( 0 );
$attribute->set_name( 'weight' );
$attribute->set_options( array(
'50g',
'100g',
'150g'
) );
$attribute->set_position( 0 );
$attribute->set_visible( 1 );
$attribute->set_variation( 1 );
$att_var[] = $attribute;
//Create the attribute object with name brand
$attribute = new WC_Product_Attribute();
$attribute->set_name( 'חברה' );
$attribute->set_options( array(
'מרצדס',
'וולוו'
) );
$attribute->set_position( 1 );
$attribute->set_visible( 1 );
$attribute->set_variation( 1 );
$att_var[] = $attribute;
$product->set_attributes($att_var);
$product->set_name('Product 3');
$product->set_status('publish');
$product->set_sku(12345);
//Save main product to get its id
$product->set_category_ids([47, 56] );
$id = $product->save();
//variation 1
$variation = new WC_Product_Variation();
$variation->set_regular_price(10);
$variation->set_sale_price(10);
$variation->set_stock_quantity(12);
$variation->set_manage_stock(True);
$variation->set_weight('50g');
$variation->set_parent_id($id);
$variation->set_attributes(array(
'weight' => '50g',
'חברה' => 'מרצדס'
));
//Save variation, returns variation id
$variation->save();
//variation 2
$variation_new = new WC_Product_Variation();
$variation_new->set_regular_price(15);
$variation_new->set_sale_price(12);
$variation_new->set_stock_quantity(20);
$variation_new->set_manage_stock(True);
$variation_new->set_weight('100g');
$variation_new->set_parent_id($id);
//Set attributes requires a key/value containing
$variation_new->set_attributes(array(
'weight' => '100g',
'חברה' => 'וולוו'
));
//Save variation, returns variation id
$variation_new->save();`https://stackoverflow.com/questions/63414380
复制相似问题