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

WooCommerce一键添加多商品至购物车实现方案咨询

WooCommerce一键添加多个商品至购物车解决方案

嘿,我来帮你搞定这个问题!首先得说,你一开始想的?add-to-cart=117&&118这种写法是行不通的,WooCommerce的查询参数不支持这种格式。下面给你几个靠谱的解决方案:


一、查询字符串方式(简单直接)

其实WooCommerce原生就支持通过重复add-to-cart参数来实现多商品添加,正确的格式是:

?add-to-cart=117&add-to-cart=118

如果需要指定每个商品的数量,可以搭配quantity参数(注意数量参数和商品ID是按顺序对应的):

?add-to-cart=117&quantity=1&add-to-cart=118&quantity=2

这个方式不用写代码,适合快速做测试或者给用户提供直接的链接,但要注意:

  • 部分旧版WooCommerce可能存在兼容性问题
  • 如果商品需要选择变体(比如颜色、尺寸),这种方式就不太适用了

二、自定义添加按钮(灵活可控)

如果需要在页面上做一个专门的按钮来触发多商品添加,可以用代码实现。把下面的代码加到你的主题functions.php或者自定义插件里:

function add_multiple_products_to_cart() {
    // 检测是否触发了添加多商品的动作
    if ( isset( $_GET['add-multiple'] ) ) {
        // 定义要添加的商品ID数组
        $target_products = array( 117, 118 );
        
        // 循环添加每个商品到购物车
        foreach ( $target_products as $product_id ) {
            WC()->cart->add_to_cart( $product_id );
        }
        
        // 跳转回购物车页面,这里也可以改成商品列表页或者其他页面
        wp_redirect( wc_get_cart_url() );
        exit;
    }
}
add_action( 'template_redirect', 'add_multiple_products_to_cart' );

然后在你需要的页面上添加按钮:

<a href="?add-multiple=1" class="button wc-button">一键添加商品117和118</a>

三、自动关联添加(贴合你的需求)

如果你需要的是用户添加商品117时,自动把商品118也加入购物车,那这个钩子方案最适合你。同样把代码加到functions.php或自定义插件:

function auto_add_related_product_on_add( $cart_item_key, $product_id, $quantity, $variation_id, $variation, $cart_item_data ) {
    // 当用户添加的是商品117时
    if ( $product_id == 117 ) {
        $related_product_id = 118;
        $product_already_in_cart = false;
        
        // 先检查购物车里有没有已经添加了118,避免重复添加
        foreach ( WC()->cart->get_cart() as $item ) {
            if ( $item['product_id'] == $related_product_id ) {
                $product_already_in_cart = true;
                break;
            }
        }
        
        // 如果没在购物车里,就自动添加
        if ( !$product_already_in_cart ) {
            WC()->cart->add_to_cart( $related_product_id );
        }
    }
}
add_action( 'woocommerce_add_to_cart', 'auto_add_related_product_on_add', 10, 6 );

这样用户点击商品117的“加入购物车”按钮后,系统会自动把118也塞进购物车,完全不需要额外操作,完美匹配你的需求。


小提醒

  • 改动代码前记得备份网站,避免出问题
  • 如果用查询字符串方式,确保商品是可购买状态(库存足够、不是禁售商品等)
  • 钩子方案可以根据你的需求调整,比如修改商品ID、添加数量限制、针对特定用户角色生效等

内容的提问来源于stack exchange,提问作者Kevin.a

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 08:20:34