簡體   English   中英

關於 WooCommerce 3 中更新產品庫存狀態功能

[英]About update product stock status function in WooCommerce 3

交易是,我必須修復自定義 WooCommerce 導入插件中的錯誤,該插件在將 WC 從 2.6 更新到 3.4 后出現。

它使用 'wc_update_product_stock_status' 函數,並用於傳遞 post(產品)id 和它在 DB 中表示的庫存狀態('instock' 和 'outofstock',作為字符串)。 但是現在,正如我在 WooCommerce 文檔( https://docs.woocommerce.com/wc-apidocs/function-wc_update_product_stock_status.html )中看到的那樣,它接受整數而不是字符串。

所以,問題是 - 存貨/缺貨值的那些整數是什么(1/0 不合適)。

如果您查看wc_update_product_stock_status()函數中的源代碼:

/**
 * Update a product's stock status.
 *
 * @param  int $product_id
 * @param  int $status
 */
function wc_update_product_stock_status( $product_id, $status ) {
    $product = wc_get_product( $product_id );
    if ( $product ) {
        $product->set_stock_status( $status );
        $product->save();
    }
}

它使用WC_Product set_stock_status() Woocommerce 3 CRUD 方法,該方法使用字符串不是整數值:

/**
 * Set stock status.
 *
 * @param string $status New status.
 */
public function set_stock_status( $status = 'instock' ) {
    $valid_statuses = wc_get_product_stock_status_options();

    if ( isset( $valid_statuses[ $status ] ) ) {
        $this->set_prop( 'stock_status', $status );
    } else {
        $this->set_prop( 'stock_status', 'instock' );
    }
}

所以這是wc_update_product_stock_status()函數中的注釋用法錯誤。

它仍然使用: 'instock''outofstock'狀態字符串。 默認值為'instock' ...

主要區別還在於,庫存狀態現在作為自定義分類法product_visibility outofstock術語處理

在 Woocommerce 3 之前,庫存狀態被作為產品元數據處理。

暫無
暫無

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

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