在WooCommerce 3关于更新产品库存状态功能(About update product st

2019-09-25 16:44发布

该协议是,我有一个自定义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不适合)的整数。

Answer 1:

如果你看看源代码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之前, 库存状况为产品的元数据处理。



文章来源: About update product stock status function in WooCommerce 3