Перенаправить на 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 вызывается только после того, как заказ выполнен и оплата произведена, хотя я вспоминаю об этом и, опять же, не интуитивно.

Надеюсь, что это поможет.

Другие вопросы по тегам