Поскольку WooCommerce 3, метод new WC_Product_Factory()
с get_product()
устарел и заменяется просто функцией wc_get_product()
.
Чтобы обновить цену, вы должны обновить цену и обычную цену (или цену и цену продажи) ...
Также метод save()
необходим для получения данных в конце.
Таким образом, чтобы получить WC_Product
Объект из существующего продукта SKU и использовать на нем любой доступный метод, выполните следующие действия:
$new_price = '225'; // New price
$_product_id = wc_get_product_id_by_sku( $sku );
if ( $_product_id > 0 ) {
// Get an instance of the WC_Product Object
$_product = wc_get_product( $_product_id );
$_product->set_regular_price($new_price); // Set the regular price
$_product->set_price($new_price); // Set the price
$_product->save(); // Save to database and sync
} else {
// Display an error (invalid Sku
printf('Invalid sku "%s"… Can not update price.', $sku);
}
Проверено и работает.