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

WooCommerce变量商品加入购物车通知需显示变体信息

刚好我之前处理过类似的需求,针对你用的WooCommerce 3.3.1和WP 4.9版本,给你两个关键的解决方案,分步骤来:

一、让用户添加变体商品后停留在商品页

其实WooCommerce后台本身有相关设置,但有些主题可能会干扰这个设置的生效,所以更稳妥的方式是用代码实现。你只需要把下面这段代码添加到你主题(推荐用子主题,避免主题更新丢失代码)的functions.php文件里:

// 添加变体商品后停留在当前商品页
add_filter( 'woocommerce_add_to_cart_redirect', 'stay_on_product_page_after_add_to_cart' );
function stay_on_product_page_after_add_to_cart() {
    if ( isset( $_SERVER['HTTP_REFERER'] ) ) {
        return $_SERVER['HTTP_REFERER'];
    }
    return get_permalink( wc_get_page_id( 'shop' ) );
}

这段代码的作用是,当用户点击“加入购物车”后,重定向回之前的商品页面(也就是用户当前浏览的商品页),完美符合你的需求。

二、修改添加购物车通知,包含变体信息

默认的通知只显示商品标题,我们需要通过钩子重写通知内容,把变体的属性信息(比如尺寸、颜色)加上去。同样把下面的代码添加到子主题的functions.php里:

// 修改添加购物车通知,包含变体属性信息
add_filter( 'woocommerce_add_to_cart_message', 'custom_add_to_cart_message_with_variations', 10, 2 );
function custom_add_to_cart_message_with_variations( $message, $product_id ) {
    $product = wc_get_product( $product_id );
    
    // 如果是变体商品
    if ( $product->is_type( 'variation' ) ) {
        $parent_product = wc_get_product( $product->get_parent_id() );
        $product_title = $parent_product->get_name();
        
        // 收集变体属性信息
        $variation_attributes = array();
        foreach ( $product->get_variation_attributes() as $attr_key => $attr_value ) {
            $attribute_name = wc_attribute_label( str_replace( 'attribute_', '', $attr_key ) );
            $variation_attributes[] = $attribute_name . ': ' . $attr_value;
        }
        $attributes_str = implode( ', ', $variation_attributes );
        
        // 组合成新的通知内容
        $message = sprintf(
            __( '"%s - %s" 已添加到您的购物车', 'woocommerce' ),
            esc_html( $product_title ),
            esc_html( $attributes_str )
        );
    } else {
        // 非变体商品保持默认通知
        $message = sprintf(
            __( '"%s" 已添加到您的购物车', 'woocommerce' ),
            esc_html( $product->get_name() )
        );
    }
    
    return $message;
}

这段代码会先判断当前添加的是不是变体商品:

  • 如果是,就获取父商品的标题,然后遍历所有变体属性(比如尺寸、颜色),把属性名和值拼成字符串,最后组合成类似“Mens Coat - size: small”的格式;
  • 如果是非变体商品,就保持原来的通知格式,不影响其他商品的使用。

注意事项

  1. 一定要用子主题的functions.php文件来添加代码,直接修改父主题的话,主题更新后代码会丢失;
  2. 添加代码前最好备份一下functions.php文件,避免语法错误导致网站打不开;
  3. 保存代码后,记得测试一下不同的变体商品,看看通知是不是正确显示了变体信息,同时确认添加后确实停留在商品页。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 09:19:24