簡體   English   中英

更新 WooCommerce 產品價格和庫存

[英]Update WooCommerce product price and stock

我有外部 REST API,我從中構建一個這樣的數組:

$arr = array(
1 => array('code' => '0100686', 'qty' => '2', 'price' => '65.22'),
2 => array('code' => '0100687', 'qty' => '1', 'price' => '5.23'),
3 => array('code' => '0100688', 'qty' => '8', 'price' => '0.28')
);

在此之后,我需要更新 WooCommerce 中產品的價格和數量。 (上面的數組代碼是 WC 中的 SKU)。

之后我的代碼如下:

foreach ($arr as $single) {
$product_id = wc_get_product_id_by_sku($single['code']);

// I need here to update the product price
// I need here to update the product in stock

}

我搜索了很多解決方案,直接通過 SQL 查詢或帶有一些鈎子,他們說我應該進行臨時清潔等......我無法想出一個最好的解決方案。 您能幫我完成這項任務的最佳解決方案嗎?

正如你所說,有很多方法。 在你的循環中,你可能會使用WC_Product::setPrice()方法。 如此處所述,您可以像這樣使用它:

foreach ($arr as $single) {
    $product_id = wc_get_product_id_by_sku($single['code']);
    $wcProduct = new WC_Product($product_id);

    //price in cents
    $wcProduct->set_price(300);
    $wcProduct->save();
   }

你可以這樣試試:

$arr = array(
    array( 'code' => '0100686', 'qty' => '2', 'price' => '65.22' ),
    array( 'code' => '0100687', 'qty' => '1', 'price' => '5.23' ),
    array( 'code' => '0100688', 'qty' => '8', 'price' => '0.28' )
);
foreach ( $arr as $single ) {
    $product_id = wc_get_product_id_by_sku( $single['code'] );
    if ( ! $product_id ) {
        continue;
    }
    $product = new WC_Product( $product_id );
    if ( ! $product ) {
        continue;
    }
    $product->set_price( $single['price'] );
    $product->set_stock_quantity( $single['qty'] );
    $product->save();
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM