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

WordPress支付网关插件中URL重定向后是否需要添加exit()?

问题解答

你注释标注的那行exit()需要删除,当前位置不需要加任何退出逻辑

原因说明:

  • 当前if代码块仅完成了阿拉伯语场景下的多语言重定向链接修正逻辑,还没有执行真正的重定向动作,这时候加exit()会直接终止程序运行,后续的重定向代码完全无法触发,用户只会拿到空白页面,不会跳转到你指定的支付失败页。
  • 你见过的加exit()的场景,都是在执行完重定向函数(比如WordPress生态下的wp_redirect())之后追加的,目的是避免重定向header发送之后,程序继续执行后续不必要的业务逻辑,引发额外的错误或者数据异常。

补充提示:

你的代码里还有一个小语法隐患:if ( $lang_code === ar )中的ar需要加单引号变为'ar',否则PHP会将其识别为未定义常量,触发报错,也会导致多语言判断逻辑失效。

合规代码示例:

else {
        // 支付失败逻辑
        $this->msg['class'] = 'error';
        $this->msg['message'] = __( "Your Transaction Has Failed Due to Some Technical Error. Please Try Again.<br/><br/>", 'toBeTranslatd');
        $order->update_status('failed');
        $order->add_order_note('Failed');
        $order->add_order_note($this->msg['message']);
        $redirect_url = home_url( '/payment-faild/' );

        $lang_code = get_post_meta( $order_id, 'wpml_language', true );
        if ( $lang_code === 'ar' ) {
            $redirect_url = apply_filters( 'wpml_permalink', $redirect_url, $lang_code );
            // 此处无需加exit
        }
        
        // 所有重定向链接计算完成后执行重定向
        wp_redirect($redirect_url);
        // 重定向完成后必须加exit终止后续逻辑
        exit();
}

内容的提问来源于stack exchange,提问作者Bassam Radi

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 05:30:02