Получить объект товара из sku и обновить цену в WooCommerce - PullRequest
1 голос
/ 29 мая 2019

Как я могу обновить продукт по 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');

1 Ответ

1 голос
/ 29 мая 2019

Поскольку 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);
}

Проверено и работает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...