Как я могу обновить продукт по product_id в моем файле функций?
Я попытался использовать приведенный ниже код, но безуспешно:
$_pf = new WC_Product_Factory();
$product_id = wc_get_product_id_by_sku( $sku );
$_product = $_pf->get_product($product_id);
$_product->set_price('225');
Начиная с WooCommerce 3, метод new WC_Product_Factory()
with get_product()
устарел и заменен просто функцией wc_get_product()
.
Чтобы обновить цену, необходимо обновить цену и обычную цену (или цена и цена продажи)...
Также метод save()
необходим для получения данных в конце.
Итак, чтобы получить WC_Product
Объект из существующего артикула продукта и применить к нему любой доступный метод, сделайте следующее:
$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);
}
Проверено и работает.