【问题标题】:woocommerce set_stock_quantity not workingwoocommerce set_stock_quantity 不起作用
【发布时间】:2019-01-29 03:34:52
【问题描述】:
我正在制作一个插件来更新 woocommerce 的库存数量,它是某种第三方购物车我想从其他网站数据同步 woocommerce 的数量。我的代码是
$quantity = floatval(5);
$product_id = 10;
$woocmmerce_instance = new WC_Product( $product_id );
$woocmmerce_instance->set_stock_quantity($quantity);
但这会引发错误 PHP 致命错误:调用未定义的方法 WC_Product::set_stock_quantity()
【问题讨论】:
标签:
wordpress
woocommerce
【解决方案1】:
您需要在 WC_Product 实例上调用 save() 以使您的更改生效。
【解决方案2】:
使用wc_update_product_stock() 更新产品的库存量。
将此代码放入您的插件中,您可以在其中执行更新产品数量的操作。
global $woocommerce;
$quantity = 5;
$product_id = 10;
$woocmmerce_instance = new WC_Product( $product_id );
$new_quantity=wc_update_product_stock( $woocmmerce_instance, $quantity);
【解决方案3】:
这里需要添加“wc_update_product_stock”函数,把这段代码放在你的插件中,你可以在其中执行更新产品数量的操作。
global $woocommerce;
$quantity = 5;
$product_id = 10;
$woocmmerce_instance = new WC_Product( $product_id );
$new_quantity=wc_update_product_stock( $woocmmerce_instance, $quantity);
【解决方案4】:
不要使用new WC_Product($product_id)
你应该使用:
global $woocommerce;
$quantity = 5;
$product_id = 10;
$woocmmerce_instance = wc_get_product( $product_id );
if(isset($woocmmerce_instance) && $woocmmerce_instance !== null && $woocmmerce_instance !== false){
$new_quantity=wc_update_product_stock( $woocmmerce_instance, $quantity);
}
或者那样:
$quantity = 5;
$product_id = 10;
$woocmmerce_instance = wc_get_product( $product_id );
if(isset($woocmmerce_instance) && $woocmmerce_instance !== null && $woocmmerce_instance !== false){
$woocmmerce_instance->set_stock_quantity( $woocmmerce_instance, $quantity);
$woocmmerce_instance->save();
}