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

如何为WooCommerce购物车中已存在的商品添加自定义数据?

WooCommerce购物车已有商品添加自定义数据解决方案

当目标商品已存在于购物车时,你需要遍历购物车条目找到对应商品,直接更新其自定义数据并保存会话,以下是补充完整的代码:

if( in_array( $res[0], array_column( WC()->cart->get_cart(), 'product_id' ) ) ) {
    // 遍历购物车,匹配目标商品
    foreach( WC()->cart->get_cart() as $cart_item_key => $cart_item ) {
        if( $cart_item['product_id'] == $res[0] ) {
            // 写入自定义数据
            $cart_item['field_wrap_name'] = $custom_data['field_wrap_name'];
            $cart_item['field_wrap_img'] = $custom_data['field_wrap_img'];
            
            // 可选:如果需要增加商品数量,取消注释下面一行
            // $cart_item['quantity'] += 1;
            
            // 更新购物车会话,保存更改
            WC()->cart->cart_contents[ $cart_item_key ] = $cart_item;
            WC()->cart->set_session();
            break; // 找到目标商品后终止循环
        }
    }
} else {
   WC()->cart->add_to_cart($res[0], '1', '0', array(), $custom_data );
}

关键说明

  • 确保$custom_data变量包含field_wrap_name和field_wrap_img两个字段,结构与添加新商品时一致
  • 若不需要增加商品数量,可删除数量递增的代码行
  • set_session()方法用于将购物车的修改同步到会话,避免刷新页面后更改丢失

内容的提问来源于stack exchange,提问作者Dias

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.24 11:40:56