Добавление атрибута к простому товару WooCommerce программно

6 июн. 2018 г., 21:58:10
Просмотры: 18K
Голосов: 6

Мне нужно создать функцию, которая будет добавлять атрибуты к определенным товарам программно. Я использую следующий код, но он не работает как ожидалось:

$attributedata = array(
     'pa_color' => array( 
           'name' => 'pa_color', 
           'value' => 'black',
           'is_visible' => '1',
           'is_taxonomy' => '1'
     )
);

update_post_meta($productID, '_product_attributes', $attributedata);

Если я устанавливаю 'is_taxonomy' в 0, атрибут добавляется к товару, но не отображается на сайте до тех пор, пока я вручную не нажму "Обновить" для каждого товара. Как правильно добавить атрибуты к товару программно? Важно отметить, что товары являются простыми, а не вариативными.

0
Все ответы на вопрос 1
2
10
// Устанавливаем атрибут цвета 'black' для товара с ID $productID 
wp_set_object_terms( $productID, 'black', 'pa_color', true );

// Создаем массив данных атрибута цвета
$att_color = Array('pa_color' =>Array(
       'name'=>'pa_color',         // Название атрибута
       'value'=>'black',           // Значение атрибута
       'is_visible' => '1',       // Видимость атрибута (1 - видимый)
       'is_taxonomy' => '1'        // Является таксономией (1 - да)
     ));

// Обновляем мета-данные товара с новыми атрибутами
update_post_meta( $productID, '_product_attributes', $att_color);
3 апр. 2019 г. 16:39:33
Комментарии

Это сработало для меня, вы можете попробовать

vikas Rana vikas Rana
3 апр. 2019 г. 16:40:46

Пожалуйста, [отредактируйте] ваш ответ и добавьте объяснение: почему это может решить проблему?

fuxia fuxia
3 апр. 2019 г. 17:40:40