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

如何在wc_add_to_cart_message_html中显示产品重量、缩略图及meta_key

问题原因

你代码出现严重错误的核心原因是:WooCommerce不存在get_the_weight()这个全局函数,获取产品所有属性的前提是先拿到合法的产品实例对象。

修复后的完整实现代码
add_filter( 'wc_add_to_cart_message_html', 'my_custom_add_to_cart_message', 10, 3 ); 
function my_custom_add_to_cart_message( $message, $products, $show_qty ) { 
    // 取最新添加的产品ID
    $product_id = key($products);
    // 安全获取产品实例
    $product = wc_get_product( $product_id );
    if( !$product ) return $message;

    // 1.获取产品重量+单位
    $weight = $product->get_weight() ? $product->get_weight() . ' ' . get_option( 'woocommerce_weight_unit' ) : '无重量信息';
    // 2.获取产品缩略图(尺寸可自定义,这里设置为60*60像素)
    $thumbnail = $product->get_image( array(60, 60), array( 'style' => 'margin-right:10px; vertical-align:middle;' ) );
    // 3.获取自定义meta字段值,替换为你实际的meta_key
    $custom_meta_val = $product->get_meta( '你的自定义meta_key' ) ? : '无对应值';

    // 组装提示消息
    $message = sprintf(
        '<span style="font-size: 12px;">%s %s 已添加到您的购物车</span><br>
        <span style="font-size: 12px;">重量:%s</span><br>
        <span style="font-size: 12px;">自定义字段值:%s</span>
        <a href="%s" class="w-100 add-to-card-pills btn mt-3">查看购物车</a>',
        $thumbnail,
        esc_html( $product->get_name() ),
        esc_html( $weight ),
        esc_html( $custom_meta_val ),
        esc_url( wc_get_cart_url() ) // 动态获取购物车链接,比写死域名更兼容
    ); 
    return $message; 
}
代码说明
  • 替换了旧版已废弃的wc_add_to_cart_message钩子,改用高版本WooCommerce兼容的wc_add_to_cart_message_html钩子,适配所有主流版本
  • 所有输出内容都做了安全转义,避免XSS漏洞
  • 购物车链接用wc_get_cart_url()动态获取,不需要手动写死域名,站点换域名也不会失效
  • 如果不需要展示某个字段,直接删掉对应占位符和参数即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.14 05:39:03