首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >WooCommerce wc_get_product返回False?

WooCommerce wc_get_product返回False?
EN

Stack Overflow用户
提问于 2020-06-15 19:39:18
回答 1查看 872关注 0票数 0

我使用wc_get_product函数来更新产品的价格。我对ID80进行了硬编码,看看它是否正常工作,但它可能返回false

我不明白为什么,因为我可以清楚地看到我的第一个产品的ID = 80。

我使用这个插件https://wordpress.org/plugins/code-snippets/

代码是这样的:

代码语言:javascript
复制
$product = wc_get_product( 80 );
$product->set_sale_price( 100 );
$product->set_price( 100 );
$product->save();

你能告诉我问题出在哪里吗?我得到了这个错误:

代码语言:javascript
复制
Na řádku č. 2 v souboru /data/a/7/a7833039-4699-4c19-96a3-4e99cb97fa3f/premi.cz/web/wp-content/plugins/code-snippets/php/snippet-ops.php(446) : eval()'d code došlo k chybě typu E_ERROR. Chybová zpráva: Uncaught Error: Call to a member function set_sale_price() on bool in /data/a/7/a7833039-4699-4c19-96a3-4e99/premi.cz/web/wp-content/plugins/code-snippets/php/snippet-ops.php(446) : eval()'d code:2
Stack trace:
#0 /data/a/7/a7833039-4699-4c19-96a3-4e99cb97fa3f/premi.cz/web/wp-content/plugins/code-snippets/php/snippet-ops.php(446): eval()
#1 /data/a/7/a7833039-4699-4c19-96a3-4e99cb97fa3f/premi.cz/web/wp-content/plugins/code-snippets/php/snippet-ops.php(534): execute_snippet('$product = wc_g...', 6)
#2 /data/a/7/a7833039-4699-4c19-96a3-4e99cb97fa3f/premi.cz/web/wp-includes/class-wp-hook.php(288): execute_active_snippets('')
#3 /data/a/7/a7833039-4699-4c19-96a3-4e99cb97fa3f/premi.cz/web/wp-includes/class-wp-hook.php(312): WP_Hook->apply_filters(NULL, Array)
#4 /data/a/7/a7833039-4699-4c19-96a3-4e99cb97fa3f/premi.cz/web/wp-includes/plugin.php(478): WP_Hook->do_action(Array)
#5 /data/a/7/a7833039-4699-4c19-96a3-4e99cb97fa3f/premi.cz/web/wp-sett
EN

回答 1

Stack Overflow用户

发布于 2021-01-07 13:58:36

我也面临着同样的问题。我知道现在回答这个问题已经太晚了,而且你也找到了一个解决方案。但我会回答,因为这对其他用户也有帮助。

我找到了好的和有效的解决方案。只需创建WooCommerce产品工厂对象并通过它获取产品即可。然后,你可以像这样改变产品的价格。

代码语言:javascript
复制
$productId = 80;
 $_pf = new WC_Product_Factory();
 $product = $_pf->get_product( $productId );

 $product->set_price( 100);
 $product->set_regular_price( 100 );
 $product->set_sale_price( 100 );
 $product->save();

这对我很管用。我希望这对其他人也有帮助。如果你需要更多关于它的细节,那就关注this TryVary tutorial吧。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62387411

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档