关于WooCommerce 3中的更新产品库存状态功能

时间:2018-08-16 15:57:40

标签: php wordpress methods woocommerce stock

交易是,我必须修复自定义WooCommerce导入插件中的错误,该错误在将WC从2.6更新到3.4后出现。

它使用“ wc_update_product_stock_status”功能,并用于传递过帐(产品)ID和库存状态,因为它在数据库中表示(“ instock”和“ outofstock”,以字符串形式)。但是如今,正如我在WooCommerce文档(https://docs.woocommerce.com/wc-apidocs/function-wc_update_product_stock_status.html)中所看到的那样,它接受整数而不是字符串。

所以,问题是-库存值缺货(1/0不适合)的整数是什么?

1 个答案:

答案 0 :(得分: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 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'

  

主要区别还在于,库存状态现在作为自定义分类法outofstock

product_visibility术语来处理

在Woocommerce 3之前,库存状态被作为产品元数据处理。