Сохранение атрибутов продукта с помощью методов Woocommerce, не синхронизирующихся с внешним интерфейсомPhp

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 Сохранение атрибутов продукта с помощью методов Woocommerce, не синхронизирующихся с внешним интерфейсом

Сообщение Anonymous »

Это не повторяющийся вопрос.
Проблема здесь не в добавлении атрибутов по отдельности. Я думаю, проблема в том, чтобы связать добавленные параметры атрибута с правильными терминами. Как видно на рисунках ниже, параметры атрибутов установлены правильно, но они не связаны со своими терминами (как видно на первом рисунке [текст вместо параметра атрибута серого фона, как показано на третьем рисунке]), хотя я вручную запускаю set_object_terms для каждого продукта, и связь в базе данных установлена ​​правильно.

Код: Выделить всё

foreach($terms as $term_id) {
$term = get_term( $term_id );
$term_name = $term->name;
$term_taxonomy = $term->taxonomy;
$term_slug = $term->slug;

if( ! has_term( $term_name, $term_taxonomy, $parent_id ) ) {
$set_terms = wp_set_object_terms($parent_id, $term_slug, $term_taxonomy, true );
}

}
При работе над переносом некоторых атрибутов из одной базы данных в другую столкнулся с проблемой: атрибуты передаются корректно, но сохраняются в текстовом виде...
Изображение

и я необходимо вручную нажать «Сохранить атрибуты» в панели администратора WordPress > изменить продукт...
[img]https://i.sstatic.net /XSqHH.jpg[/img]

чтобы он действительно правильно зарегистрировался в системе, как можно увидеть здесь.
Изображение

Основная проблема заключается в том, что в текстовой форме, как показано на первом снимке экрана, атрибуты на самом деле не видны в магазине, обращенном к пользователю, и они также недоступны в вариантах продукта.
Я использую методы woocommerce для обновления продуктов. Вот пример кода:

Код: Выделить всё

$attribute_object = new WC_Product_Attribute();
$attribute_object->set_name( $attribute_name );
$attribute_object->set_options( $value );
$attribute_object->set_visible(1);
$attribute_object->set_variation(1);
$attribute_object->set_position(0);
$attribute_object->set_id( 0 );
$new_product_attributes[$attribute_name] = $attribute_object;
$new_product->set_attributes($new_product_attributes);

$new_product->save();
Как заставить WP синхронизировать продукт с недавно добавленными атрибутами/значениями атрибутов?

Подробнее здесь: https://stackoverflow.com/questions/632 ... -front-end
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»