在其他WordPress插件中使用WooCommerce功能

时间:2015-11-09 作者:Josef Rosel

我目前正在尝试制作一个插件来更新我的WooCommerce产品的库存数量。所以我想访问wc\\u update\\u product\\u stock函数,但返回了一个错误。

插件php文件中的代码:

wc\\U update\\u product\\u库存($id,$库存);

日志错误:

致命错误:调用未定义的函数wc\\u update\\u product\\u stock()

我在某处读到,如果WooCommerce插件被激活,所有WC函数的正常调用应该是可能的。

Update:

我按照Scriptonomy的建议在函数中尝试了您的代码

    function updateWCProduct($product)
    {         
        $wcproduct = new WC_Product($product->get_id());
        var_dump($wcproduct);
        $wcproduct->set_stock($product->get_stock(),\'set\');
        $wcproduct->set_price($product->get_price());
    }
但我得到了一个空的产品对象

对象(WC\\U Product)#9573(5){[“id”]=>int(9834)[“post”]=>
NULL[“Product\\u type”]=>NULL[“shipping\\u class:protected]=>
string(0)”“[“shipping\\u class\\u id:protected]=>int(0)}

Update:要按sku获取产品,请使用以下代码:https://www.skyverge.com/blog/find-product-sku-woocommerce/

2 个回复
最合适的回答,由SO网友:akasapriya 整理而成

如果您已经调用了该产品,例如

$product = new WC_Product($id);

然后,您可以使用

$product->set_stock($stock);

有关更多信息,请查看文档:

https://docs.woothemes.com/wc-apidocs/class-WC_Product.html#_set_stock

SO网友:Scriptonomy

必须先加载并启动Woocommerce插件,然后才能调用任何此类函数。

钩住woocommerce_init 操作并在那里执行代码。

add_action( \'woocommerce_init\', \'callback\');

相关推荐