Если у меня уже есть существующие атрибуты продукта, а затем я использую указанную ниже функцию, он удаляет существующие атрибуты из продукта и заменяет их этим атрибутом.
Я хочу только программно обновить это одно значение атрибута новым значением.
Нужно ли мне сначала прочитать существующий массив атрибутов с помощью 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