如何移除WooCommerce购物车中「购物车为空时无法结账」的通知?
移除WooCommerce购物车页面「购物车为空时无法结账」通知的解决方案
你可以通过在主题的functions.php文件中添加自定义代码来移除这个通知,以下是两种可靠的实现方式:
方法一:过滤通知文本直接移除
这种方法会遍历所有WooCommerce通知,精准匹配并移除目标文本的通知,适用性更广:
add_filter( 'woocommerce_get_notices', 'remove_empty_cart_checkout_notice', 10, 1 ); function remove_empty_cart_checkout_notice( $notices ) { foreach ( $notices as $type => &$notice_group ) { $notice_group = array_filter( $notice_group, function( $notice ) { return strpos( $notice['notice'], '购物车为空时无法结账' ) === false; } ); if ( empty( $notice_group ) ) { unset( $notices[$type] ); } } return $notices; }
方法二:移除默认的检查回调
如果这个通知是在结账流程的购物车检查环节触发的,可以直接替换默认的检查逻辑,跳过该通知的生成:
add_action( 'woocommerce_check_cart_items', 'disable_empty_cart_checkout_notice', 9 ); function disable_empty_cart_checkout_notice() { remove_action( 'woocommerce_check_cart_items', 'woocommerce_check_cart_items' ); if ( ! WC()->cart->is_empty() ) { woocommerce_check_cart_items(); } // 空购物车时不添加任何通知 }
注意事项
- 代码建议添加到当前启用主题的
functions.php文件末尾,或者使用专门的自定义代码插件(如Code Snippets),避免主题更新时代码丢失。 - 修改前务必备份
functions.php文件,防止语法错误导致网站无法访问。 - 如果方法一不生效,检查目标通知的文本是否有细微差异(比如空格、全角/半角标点),调整
strpos中的匹配文本即可。
内容的提问来源于stack exchange,提问作者BGSniper-xll
相关产品推荐
相关产品推荐

