【问题标题】:About update product stock status function in WooCommerce 3关于 WooCommerce 3 中的更新产品库存状态功能
【发布时间】:2018-08-16 15:57:40
【问题描述】:

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

它使用 'wc_update_product_stock_status' 函数,并用于传递帖子(产品)ID 和它在 DB 中表示的库存状态('instock' 和 'outofstock',作为字符串)。但现在,正如我在 WooCommerce 文档 (https://docs.woocommerce.com/wc-apidocs/function-wc_update_product_stock_status.html) 中看到的那样,它接受整数而不是字符串。

所以,问题是 - 那些表示存货/缺货值的整数是什么(1/0 不适合)。

【问题讨论】:

    标签: php wordpress methods woocommerce stock


    【解决方案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'...

    主要区别还在于 stock status 现在被处理为 outofstock 自定义分类术语 product_visibility

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-04-13
      • 2017-10-09
      • 2019-03-29
      • 2020-05-18
      • 2021-03-16
      • 2019-01-27
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多