如果您查看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 method 使用字符串但不是整数值:
/**
* 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'...
主要区别还在于 stock status 现在被处理为 outofstock 自定义分类术语 product_visibility
在 Woocommerce 3 之前,库存状态作为产品元数据处理。