Woocomerce активно использует трансиенты. Это временный вордпрессовский кэш.
Что бы Ваши изменения сразу вступали в силу, Вам надо удалять трансиент для этого товара
// очищаем кэш
wc_delete_product_transients($product_id);
Я тоже как то искал и нашел в исходниках, где-то очень глубоко.
Но если честно, Ваш подход неверный, т.к. Woocommerce при изменении цены вариации правит еще мета поля самого товара. А Вы работаете в обход woo, напрямую с базой. К сожалению правильным кодом не поделюсь, у самого руки не дошли переписать, поищите в нете. Думаю надо работать с классом WC_Product и его производными.