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

如何调整WooCommerce购物车页面优惠券错误提示的显示位置

修改WooCommerce购物车页面优惠券错误提示位置

WooCommerce提供了钩子和过滤函数来调整优惠券错误提示的显示位置,以下是两种常用实现方式:

方式一:整体移动所有购物车通知(含优惠券错误)

如果不需要区分优惠券错误和其他通知,直接将所有购物车通知从默认位置移到目标位置:

  1. 移除默认的通知输出钩子:
// 移除购物车顶部的默认通知输出
remove_action( 'woocommerce_before_cart', 'wc_print_notices', 10 );
  1. 在你需要的位置添加通知输出,比如购物车表格之后、优惠券输入框下方等,替换成对应的WooCommerce钩子即可:
// 在购物车优惠券输入框下方输出通知
add_action( 'woocommerce_after_coupon_form', 'wc_print_notices', 10 );

常用的可选钩子参考:

  • woocommerce_before_cart_table:购物车表格上方
  • woocommerce_after_cart_table:购物车表格下方
  • woocommerce_before_cart_totals:购物车总计区域上方
  • woocommerce_after_cart_totals:购物车总计区域下方

方式二:单独移动优惠券错误提示

如果只想移动优惠券相关错误,保留其他通知在原位置,可以通过捕获并重新输出的方式实现:

// 捕获优惠券错误通知,阻止默认输出
function capture_coupon_errors( $message, $notice_type ) {
    static $coupon_errors = [];
    // 判断是否为优惠券相关错误(可根据实际提示文本调整判断逻辑)
    if ( $notice_type === 'error' && str_contains( $message, '优惠券' ) ) {
        $coupon_errors[] = $message;
        return '';
    }
    return $message;
}
add_filter( 'woocommerce_add_notice', 'capture_coupon_errors', 10, 2 );

// 在指定位置输出捕获的优惠券错误
function display_coupon_errors_in_custom_location() {
    global $coupon_errors;
    if ( ! empty( $coupon_errors ) ) {
        foreach ( $coupon_errors as $error ) {
            wc_print_notice( $error, 'error' );
        }
    }
}
// 替换为你需要的目标钩子,比如优惠券输入框下方
add_action( 'woocommerce_after_coupon_form', 'display_coupon_errors_in_custom_location', 10 );

注意事项

  • 上述代码可添加到当前主题的functions.php文件,或自定义插件中;
  • 若提示文本不是中文“优惠券”,需调整str_contains中的关键词匹配实际提示内容;
  • 可根据截图中的目标位置,选择对应的WooCommerce钩子进行替换。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.16 07:31:08