Перенаправить на custompage.php вместо viewinvoice.php, если в WHMCS Vs 6.2.0 произошел сбой оплаты
Я хочу перенаправить на пользовательскую страницу после сбоя платежа, возвращенного платежным шлюзом. Для этого я использую хук ShoppingCartCheckoutCompletePage, чтобы проверить это с помощью переменной $vars['ispaid']. Если платеж выполнен успешно, $vars['ispaid'] имеет значение true, и перенаправление на страницу благодарности работает.
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 и статус платежа устанавливается как "неоплаченный".
Я что-то пропустил? Как я могу перенаправить на страницу с ошибкой транзакции?
Благодарю.
1 ответ
WHMCS не предоставляет интуитивно понятный способ добраться туда, куда вы хотите, это точно. Вам может понадобиться добавить файл для выполнения в каталог ловушек, чтобы он работал без ловушки - любой php, который вы добавляете в каталог ловушек, запускается, как только система запускается и проверки безопасности выполняются. Таким образом, это означает, что вы можете видеть, являетесь ли вы a) в файле viewinvoice.php, b) есть ли сообщение об ошибке, указывающее на неудавшийся платеж, и c) перенаправить оттуда, если это правда.
Полагаю, что ShoppingCartCheckoutCompletePage вызывается только после того, как заказ выполнен и оплата произведена, хотя я вспоминаю об этом и, опять же, не интуитивно.
Надеюсь, что это поможет.