如果在 WHMCS 与 6.2.0 中付款失败,则重定向到 custompage.php 而不是 viewinvoice.php

Redirect to custompage.php instead of viewinvoice.php if payment fails in WHMCS Vs 6.2.0

我希望在支付网关返回支付失败后重定向到自定义页面。 为此,我使用 ShoppingCartCheckoutCompletePage 挂钩通过变量 $vars[[=​​21=]] 进行检查。 付款成功后,$vars[[=​​21=]] 为真,重定向到感谢页面有效。

add_hook('ShoppingCartCheckoutCompletePage', 1, function ($vars) 
{
    # Will be true if the order has been paid 
    if($vars['ispaid'] == true)
    {
        #redirect to thank you page
        header('location:'.thankYouPage);
        die;
    }
    else
    {
        header('location:'.transactionFailedPage);
        die;
    }   
}

但是支付明显失败时else语句没有执行, 而是加载了 viewinvoice.php 页面并将付款状态设置为 'unpaid'

我错过了什么吗? 如何重定向到交易失败页面?

谢谢。

WHMCS 没有提供一种直观的方式来到达您想去的地方,这是肯定的。您可能需要在 hooks 目录中添加一个文件以在没有 hook 的情况下执行到 运行 - 您添加到 hooks 目录中的任何 php 都会在系统启动并完成安全检查后立即执行。因此,这意味着您可以查看您是否 a) 在 viewinvoice.php 文件中,b) 是否有指示付款失败的错误消息,以及 c) 如果这些为真,则从那里重定向。

我认为 ShoppingCartCheckoutCompletePage 仅在订单完成并付款后才被调用,虽然我记得是这样,但它并不直观。

希望对您有所帮助。