You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Woocommerce API上传商品图片不生效 格式错误相关问题咨询

问题原因

你出现的问题是参数格式不符合Woocommerce REST API的要求,核心错误有3个:

  • 不需要对图片参数做JSON编码:Woocommerce官方PHP库会自动处理请求参数的序列化,传入原始PHP数组即可,JSON字符串会被识别为普通文本,无法被解析为图片配置。
  • images字段格式错误:API要求images为索引数组,每个元素是包含src属性的关联数组,哪怕只有1张图片也需要用数组包裹,你之前的代码直接给images赋值了单个关联数组,不符合要求。
  • 参数未挂载到正确键位:你直接把函数返回值放到$item_data数组中,导致参数变成了索引为0的无效字段,Woocommerce无法识别到images配置。

修正方案

第一步:调整图片生成函数

function carga_imagenes($sku){
    $db = conectaBBDD();
    $query = "SELECT MAX(`ancho`),`Sku`,`imagenId`,`url` FROM `imagenes_productos` WHERE `Sku`='".$sku."' GROUP by `imagenes_productos`.`imagenId`";
    $sql_response = $db->query($query);
    $rows = $sql_response->fetchAll();
    $imagenes = [];
    foreach($rows as $key => $val) 
    {
        // 追加单张图片配置到索引数组
        $imagenes[] = [
            'src' => $val['url']
        ];
    } 
    // 直接返回PHP数组,不需要JSON编码
    return $imagenes;
}

第二步:调整参数组装逻辑

$item_data = [
    'name' => $search_item['Description'],
    'type' => 'simple',
    'regular_price' => strval($search_item['precio']),
    'stock_quantity' => strval($search_item['stock']),
    'sku' => $search_item['sku'],
    'description' => $search_item['Description'],
    'weight' => $search_item['peso'],
    // 明确把图片数组赋值给images字段
    'images' => carga_imagenes($search_item['sku'])
];

调整后生成的参数会符合API要求,图片即可正常上传。

内容的提问来源于stack exchange,提问作者Sergio Gonzalez Prieto

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 06:45:01