我希望在支付网关返回付款失败后重定向到自定义页面。 为此,我使用ShoppingCartCheckoutCompletePage钩子使用变量$ vars ['ispaid']来检查这个。 付款成功后,$ vars ['ispaid']为true,重定向到thankyou页面。
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页面并将付款状态设置为“未付”
我错过了什么吗? 如何重定向到交易失败页面?
感谢。
答案 0 :(得分:1)
WHMCS没有提供直观的方式来到达您想去的地方,这是肯定的。您可能需要添加一个要在hooks目录中执行的文件,以便在没有钩子的情况下运行 - 一旦系统启动并完成安全检查,您添加到hooks目录中的任何php都会被执行。因此,这意味着您可以在viewinvoice.php文件中查看您是否a)b)如果有错误消息指示付款失败,c)如果这些是真的则从那里重定向。
ShoppingCartCheckoutCompletePage我认为只有在订单完成并付款后才会调用,这是我记得的,但同样,它并不直观。
希望有所帮助。