首页 > 解决方案 > Woocommerce 产品保存不会节省价格

问题描述

我正在建立一个网上商店,产品来自第三方物流 API,它不告诉产品的价格。价格是通过 CSV 文件上传的,但是当我在产品对象上调用 save 方法时,价格不会更新。销售开始日期和结束日期会更新,但正常价格和销售价格不会更新。我参考了正确的 csv 列,如果我调用WC_Product::get_priceandget_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++;
    }
}

标签: phpwordpresswoocommerce

解决方案


推荐阅读