php - Woocommerce 产品保存不会节省价格
问题描述
我正在建立一个网上商店,产品来自第三方物流 API,它不告诉产品的价格。价格是通过 CSV 文件上传的,但是当我在产品对象上调用 save 方法时,价格不会更新。销售开始日期和结束日期会更新,但正常价格和销售价格不会更新。我参考了正确的 csv 列,如果我调用WC_Product::get_price
andget_sale_price
函数,它们会返回我刚刚设置的正确价格。有人可以帮助我吗?我究竟做错了什么?这是处理 csv 上传并应更新价格的代码:
function handleCSVUpload()
{
$handle = fopen($_FILES['csv']['tmp_name'], 'r');
$linesCount = 0;
while (($row = fgetcsv($handle, 1000, $_POST['separator'])) !== false) {
//skip headers
if ($linesCount > 0) {
$sku = $row[0];
$price = $row[1];
$onSalePrice = $row[2];
$saleStart = rtrim(str_replace('.', '-', $row[3]), '-');
$saleEnd = rtrim(str_replace('.', '-', $row[4]), '-');
$productId = wc_get_product_id_by_sku($sku);
if($productId > 0) {
$product = WC()->product_factory->get_product($productId);
$product->set_price($price);
if($onSalePrice !== '') {
$product->set_sale_price($onSalePrice);
}
if($saleStart !== '') {
$product->set_date_on_sale_from($saleStart);
}
if($saleEnd !== '') {
$product->set_date_on_sale_to($saleEnd);
}
$product->save();
}
}
$linesCount++;
}
}
解决方案
推荐阅读
- javascript - 如何在 Azure Maps 的地图视图边界中获取所有可见点
- python - 如何在 Python(plotly.express,px)中使用 Plotly Expess 仅显示图例的子集?
- c# - 如何从虚拟机连接 C# 和 MySQL?
- json - 无法从 JSON 中删除或拼接行
- java - RecycleView 和 CardView 项目、边距和居中
- database - Postgis,将点转换为线
- r - 如何在 ROCit 中计算 ROC?
- python - 打开新网页标签后无法抓取表格
- c# - 如何使用 Linq 加入两个实体
- ios - 无法在 TestFlight Xamarin 表单中加载 http URL 图像