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

不打扰是莪最后的温柔 提交于 2019-12-25 10:01:32

问题


I wish to redirect to a custom page following the failure in payment as returned by payment gateway. To this end, I am using the ShoppingCartCheckoutCompletePage hook to check this using the variable $vars['ispaid']. When payment is successful, $vars['ispaid'] is true and the redirect to the thankyou page works.

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;
    }   
}

However the else statement is not executing when payment obviously fails, rather the viewinvoice.php page is loaded and payment status set to 'unpaid'

Am I missing something? How can I redirect to the transaction failed page?

Thanks.


回答1:


WHMCS doesn't provide an intuitive way to get to where you are wanting to go, that's for sure. You may need to add a file to execute in the hooks directory to run without a hook - any php you add into the hooks directory gets executed as soon as the system starts up and security checks are done. So this means you can see if you are a) on the viewinvoice.php file, b) if there is an error message indicating a failed payment and c) redirect from there if these are true.

The ShoppingCartCheckoutCompletePage I believe is only called after the order is complete and payment is made, that's what I recall though, and again, it's not intuitive.

Hope that is of help.



来源:https://stackoverflow.com/questions/34682783/redirect-to-custompage-php-instead-of-viewinvoice-php-if-payment-fails-in-whmcs

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!