@FRC_Volen

Как обновить цену для вариативного товара Woocommerce?

Привет,

не могу обновить цены для вариативного товара из своего метабокса
я использую следующий код чтобы обновить цены для товара и его вариаций
update_post_meta( $post->ID, '_regular_price', (float)$meta_value  );
update_post_meta( $post->ID, '_price', (float)$meta_value  );


Но в магазине и в карточке товара показана старая цена
5ca76cfd9b55b478861919.jpeg
а в корзине уже новая цена
5ca76d11e673e845514709.jpeg
  • Вопрос задан
  • 670 просмотров
Решения вопроса 1
Woocomerce активно использует трансиенты. Это временный вордпрессовский кэш.
Что бы Ваши изменения сразу вступали в силу, Вам надо удалять трансиент для этого товара
// очищаем кэш
	wc_delete_product_transients($product_id);


Я тоже как то искал и нашел в исходниках, где-то очень глубоко.

Но если честно, Ваш подход неверный, т.к. Woocommerce при изменении цены вариации правит еще мета поля самого товара. А Вы работаете в обход woo, напрямую с базой. К сожалению правильным кодом не поделюсь, у самого руки не дошли переписать, поищите в нете. Думаю надо работать с классом WC_Product и его производными.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы