WooCommerce根据购物车商品总数量显示提示消息
这事儿好办!我给你写个直接能用的自定义函数,结合WooCommerce的钩子就能实现你要的效果。核心思路就是先计算购物车的总商品数量,再和你设定的X值对比,不足的话就显示提示消息。
实现代码(直接复制到主题的functions.php或自定义插件中)
// 购物车最低数量提示函数 function custom_cart_min_quantity_notice() { // 容错判断:避免购物车未初始化或为空时报错 if ( ! WC()->cart || WC()->cart->is_empty() ) { return; } // 在这里设置你的目标数量X,按需修改数值 $target_quantity = 30; // 获取购物车所有商品的总数量(注意:是单个商品数量的总和,不是商品种类数) $total_quantity = WC()->cart->get_cart_contents_count(); // 当总数量小于目标值时,计算差额并显示提示 if ( $total_quantity < $target_quantity ) { $remaining = $target_quantity - $total_quantity; // 自定义提示消息,你可以替换成自己的文案 $message = sprintf( '您再订购 %d 件商品即可获得……', $remaining ); // 输出提示:第二个参数可改为'warning'显示黄色警告样式 wc_add_notice( $message, 'notice' ); } } // 将函数挂载到购物车表格上方的钩子位置 add_action( 'woocommerce_before_cart_table', 'custom_cart_min_quantity_notice' );
关键细节说明
- 数量计算逻辑:
WC()->cart->get_cart_contents_count()是WooCommerce官方提供的方法,专门统计购物车中所有商品的数量总和(比如买了2件A+3件B,总数量就是5),完全匹配你的需求,不用手动循环计算。 - 钩子位置调整:我用的
woocommerce_before_cart_table会把消息放在购物车表格正上方,位置很直观;如果想把消息放在购物车页面更顶部,直接把钩子换成woocommerce_before_cart就行。 - 样式适配:用
wc_add_notice()输出消息,会自动套用当前主题的通知样式,不用额外写CSS;想要黄色警告风格的话,把第二个参数改成'warning'即可。 - 容错处理:开头的判断逻辑可以避免在购物车未加载或为空的极端场景下出现报错。
内容的提问来源于stack exchange,提问作者Lyall
相关产品推荐
相关产品推荐

