You need to enable JavaScript to run this app. 生产环境WooCommerce 5.1.0下自定义支付网关的wc_add_notice不生效
优惠活动
大模型
产品
解决方案
定价
更多

生产环境WooCommerce 5.1.0下自定义支付网关的wc_add_notice不生效

WooCommerce自定义支付网关webhook生产环境通知展示失效问题

基础环境与开发背景

  • 开发初期本地运行的WooCommerce版本为4.7.0,后续已将本地环境升级至与生产服务器一致的5.1.0版本
  • 生产服务器实际运行的WooCommerce版本为5.1.0
  • 本次开发的自定义支付网关中,实现了如下webhook回调逻辑:
function webhook() {
  $data = json_decode($this->df_check_payment(), true);
  $code = $data['result']['code'];
  $description = $data['result']['description'];
  if ($code != WC_Gateway_Datafast::DF_SUCCESS_CODE){
    wc_add_notice(  __("Payment failed -> Code: $code Description: $description"  , 'gateway'), 'error' );
    wp_safe_redirect( wc_get_page_permalink( 'cart' ) );
  } else{
     $orderId = $data['customParameters']['SHOPPER_documentoId'];
     $order = wc_get_order( $orderId );
     $order->set_transaction_id($data['id']);
     $order->payment_complete();
     wp_safe_redirect($this->get_return_url($order));
    }
}

问题现象与已完成排查

  • 功能表现差异:上述逻辑在本地环境运行完全正常,支付失败时通过wc_add_notice添加的错误提示可正常在购物车页面展示;但生产环境中该功能完全失效,通知无法正常展示
  • 重定向页面调整验证:尝试将跳转地址从购物车页调整为结账页(通过wc_get_page_permalink( 'checkout' )实现跳转),生产环境依然无法正常展示通知
  • 版本差异排除:最初猜测问题与WooCommerce版本差异有关,将本地环境升级到与生产一致的5.1.0版本后,本地功能依然运行正常,生产环境的通知展示问题仍未解决
  • 前端渲染问题排除:曾怀疑是其他插件的样式覆盖导致通知不可见,但检查生产页面的HTML源码时,完全找不到通知对应的文本内容,说明通知根本没有被生成、存储并输出,并非前端展示层面的问题
  • 当前状态:本地环境可正常展示支付失败的错误提示,生产环境则没有任何相关提示展示

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.29 07:45:04