Специальная кодировка Woocommerce для китайской таксономии атрибутов товаров

У меня есть товар в woocommerce, который хранится на китайском языке,

Товар имеет разные цветовые вариации, похоже, woocommerce encode таксономию атрибутов для атрибута цвета. в продукте на английском языке таксономия просто хранится как pa_color, но в моем продукте на китайском языке woocommerce хранит таксономию как pa_191386aef4bc441e, буквы и цифры после pa_ представляют собой encoded form строки 颜色, которая переводится как цвет на английском языке, поэтому термин таксономия pa_191386aef4bc441e просто означает pa_color на английском языке.

Я пытаюсь выяснить, как woocommerce закодировала китайскую строку 颜色 в 191386aef4bc441e, чтобы я мог декодировать текст обратно в действительную китайскую строку, конечная цель - перевести атрибуты продукта на английский и заменить китайские значения замененными английскими значениями.

Как woocommerce закодировала атрибут продукта, чтобы я мог декодировать его обратно в исходную строку?

Посмотрите на изображение ниже, текст, на который указывает стрелка, представляет собой китайскую строку, которая сохраняется как pa_191386aef4bc441e  введите описание изображения здесь

Ниже показано, как данные о продукте выглядят в базе данных woocommerce.

Сообщение имеет идентификатор 1347  введите описание изображения здесь

термины

введите описание изображения здесь

отношения терминов  введите описание изображения здесь

таксономия терминов  введите описание изображения здесь


person salimsaid    schedule 14.08.2020    source источник


Ответы (1)


У меня такая же проблема. На другом языке (иврит). Но я заметил, что если вы создаете атрибут программным способом. Не возникает этой проблемы. Как, например, в этом коде.

`<?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();`
person rodavid5    schedule 10.09.2020