【发布时间】:2020-02-10 08:41:54
【问题描述】:
我正在使用 Woocommerce 为电子商务编写一个脚本,该脚本读取 csv 并为产品设置新的价格/销售价格。 下面的变量是一个例子。
使用此代码,我可以设置产品的价格和促销价,但是当促销数据过期时,价格不会恢复到正常价格。
$price = '40';
$sale_price = array();
$sale_price[1] = '20';
$sale_price[2] = '2020-02-10';
$sale_price[3] = '2020-02-11';
update_post_meta( $product_id, '_price', $price );
update_post_meta( $product_id, '_regular_price', $price);
if( !empty($sale_price) ){
update_post_meta( $product_id, '_price', $sale_price[1] );
update_post_meta( $product_id, '_sale_price', $sale_price[1] );
update_post_meta( $product_id, '_sale_price_dates_from', $sale_price[2] );
update_post_meta( $product_id, '_sale_price_dates_to', $sale_price[3] );
}
如果我不设置 '_price' post_meta,我将看不到正常价格或促销价。
【问题讨论】:
-
因为您将日期用于
_sale_price_dates_from和_sale_price_dates_to日期,因为那必须是timestamp而不是直接日期,因此请使用timestamp更新并检查 -
您好,感谢您的回答。 data_from 和 data_to 工作正常,因为我看到标签“Offer”在销售数据过期时消失
-
WooCommerce 有一个用于更新产品的 API,您应该使用它而不是直接更新帖子元数据。使用 API 可确保所有相关数据保持一致。特别是,WooCommerce 维护价格缓存,如果您直接更新数据库中的价格,WooCommerce 将不知道缓存条目现在无效并且必须刷新。
-
您可以在woocommerce.wordpress.com/2019/04/01/…阅读有关“产品数据查找表”的信息
标签: wordpress woocommerce