Если у меня уже есть существующие атрибуты продукта, а затем я использую указанную ниже функцию, он удаляет существующие атрибуты из продукта и заменяет их этим атрибутом.
Я хочу только программно обновить это одно значение атрибута новым значением.
Нужно ли мне сначала прочитать существующий массив атрибутов с помощью get_post_meta и обновить его? Я просто пытаюсь узнать, есть ли альтернативный метод.
function update_internalSKU() {
$product_id = 850;
$product_attributes = array();
$product_attributes['internalSKU'] = array(
'name' => 'internalSKU',
'value' => 'b8de7569042',
'position' => 1,
'is_visible' => 0,
'is_variation' => 0,
'is_taxonomy' => 0
);
update_post_meta( $product_id ,'_product_attributes', $product_attributes);
}
update_internalSKU();
Ваш
"internalSKU"
кажется настраиваемым атрибутом продукта. Итак, да, вам нужно сначала получить массив атрибутов продукта (поскольку для вашего продукта могут быть установлены другие атрибуты продукта), чтобы обновить только необходимыеvalue
следующим образом:Код находится в файле functions.php активной дочерней темы (или активной темы).
Теперь вы можете запускать эту функцию где угодно, определяя ее
$product_id
аргумент (для идентификатора продукта850
), например:Проверено и работает.
Спасибо @LoicTheAztec! Ваше здоровье!! — person simlpymarkb; 12.01.2021