该协议是,我有一个自定义WooCommerce导入插件,这似乎更新WC从2.6到3.4之后修复错误。
它采用了“wc_update_product_stock_status”功能,以及用于传递后(产品)标识和它的,因为它是在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'
......
主要的区别还在于股票的地位现在被当作outofstock
自定义分类项product_visibility
Woocommerce 3之前, 库存状况为产品的元数据处理。