【问题标题】:Set programmatically product price to get it displayed everywhere in Woocommerce以编程方式设置产品价格,使其在 Woocommerce 中随处显示
【发布时间】:2018-08-24 04:56:31
【问题描述】:

我有一个 php cron 作业,它正在更新来自第三方供应商的产品信息。这些变化可以是价格、售价、库存等。

除了通过以下代码出售产品时,我所有的东西都在运行:

 update_post_meta( $product_id, '_sale_price', $sale_price );
 update_post_meta( $product_id, '_price', $sale_price );

产品已正确更新,并在网站和产品管理员的产品中显示销售价格。当我使用 woocommerce 的简码之一来显示打折产品时,它不会撤回通过上述代码更新的内容,前提是它是通过管理面板完成的。

[products limit="24" columns="4" on_sale="true" ]

所以我的代码没有做 woocommerce 所做的事情,但我不知道我错过了什么。到目前为止,我发现的唯一解决方法是在管理面板中删除销售价格->保存,然后将其添加回来->并再次保存。由于 3,000 多种产品有 18,000 多种变体,这不是手工可以完成的。

顺便说一句:当我们导入 vis csv 文件提要时,我也遇到了 WP all import 的问题。

任何想法或想法都会有所帮助。

谢谢!

【问题讨论】:

  • Woocommerce 缓存产品数据以提高性能,因此直接更新元数据不会更新缓存。在 LoicTheAztec 的回答中将使用 CRUD 方法。
  • @PeterHvD 不幸的是,CRUD 在我的 CRON 工作中不起作用。 Woocommerce 引发错误。

标签: php wordpress woocommerce product price


【解决方案1】:

最好的方法应该是使用 Woocommerce 3 中引入的CRUD methods……但由于它是在一个 cron 工作中,我不确定它是否会起作用。无论如何尝试以下操作:

// Get an instance of the WC_Product object
$product = new WC_Product( $product_id );

// Set product prices
$product->set_sale_price( $sale_price );
$product->set_price( $price );

// Save data and update caches
$product->save();

现在根据产品类型,您可能需要以不同方式调用产品对象实例……

【讨论】:

  • 不幸的是,我无法在 cron 作业中使用 CRUD。当 Woocommerce 尝试读取传递给它的产品信息时,它会在第 149 行的 woocommerce/includes/data-stores/class-wc-product-data-store-cpt.php 中引发错误。不知道如何解决这个问题,我在想也许我可以将销售项目放入他们自己的类别并显示。
  • 你将来会遇到一个问题,那么作为 Woocommerce announced 最近他们打算将所有内容转移到自定义表中,这就是他们首先实施 CRUD 的原因。跨度>
  • @PeterHvD 这不是现在,距离发生还有很长的时间。
  • CRUD 在我的插件中也失败了。同样的错误。当我得到一个与作为变体一部分的 sku 匹配的 sku 时,我可以通过 meta 获取和操作所有内容。我可以通过 $product_id = wc_get_product_id_by_sku( $sku ); 获得正确的产品 ID。第二个我向 woocommerce 询问 $product = new WC_Product( $product_id );通过该调用 woocommerce 引发异常,而不是我的代码。此时无法读取数据的是 woocommerce。我正在为此打开 woocommerce 的问题。
  • @Dave 我想$product = wc_get_product($product_id) 也会崩溃……
猜你喜欢
  • 2018-07-23
  • 1970-01-01
  • 2018-07-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多