以编程方式设置产品价格,以使其在Woocommerce中到处显示

时间:2018-08-24 04:56:32

标签: php wordpress woocommerce product price

我有一个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导入也遇到了这个问题。

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

谢谢!

1 个答案:

答案 0 :(得分:1)

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

// 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();

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