Перенаправление на custompage.php вместо viewinvoice.php, если платеж не прошел через дополнительный модуль WHMCS.

Я отправил связанный запрос: Перенаправление на custompage.php вместо viewinvoice.php, если платеж не прошел в WHMCS Vs 6.2.0, и я получил блестящий ответ, который я успешно реализовал.

Я хочу перенести свое кодовое решение в настраиваемый дополнительный модуль WHMCS, если это возможно, используя функцию _output WHMCS дополнительного модуля для вывода сообщений об ошибках транзакции из платежного шлюза.

Я понимаю, что хуки, которые модуль должен определять в WHMCS, определены в файле с именем «hooks.php». Это должно быть в папке моего модуля.

Цель моего дизайна — определить, нахожусь ли я на странице viewinvoice.php, а затем перенаправить внутри хука на файл модуля расширения, как показано ниже:

add_hook('ClientAreaPage', 1, function($templateVariables)
{
    if($templateVariables["filename"] == "viewinvoice" AND $templateVariables["paymentSuccess"] == false)
    {       
        // store variables to send to the addon module file.
        $_SESSION['bemasTransactionDetails'] = $templateVariables["invoiceid"];

        // redirect to addon page ????
        header('location:'. addon_module_file);
        die;
    }
});

Это не работает.

Как мне перенаправить файл модуля надстройки WHMCS из хука модуля? Или я неправильно подхожу к проблеме?

Может ли кто-нибудь дать мне подсказку?


person Terungwa    schedule 13.01.2016    source источник


Ответы (1)


Интересно - можете ли вы проверить, что функция вызывается на странице клиентской области, как и ожидалось? Я не пробовал так объявлять функцию на лету. Если я не ошибаюсь, функция add_hook ищет фактическое строковое имя для функции для выполнения — если вы объявите такую ​​​​функцию вместо предоставления имени, я бы не подумал, что она будет выполняться. Я сделал что-то подобное в фреймворке, который я написал, который работает с WHMCS (Dunamis Framework) — он позволяет добавлять файлы ловушек в папку «хуки» в модуле расширения, затем фреймворк захватывает их и добавляет в стек в выполнение, но я не пробовал этот метод.

Что касается вашего вопроса, я думаю, вы можете использовать аналогичный подход к другому вопросу, который у вас был. Файл hooks.php в папке модуля расширения также будет добавлен в стек и выполнен после инициализации приложения WHMCS, чтобы вы могли проверить имя файла, в котором вы находитесь, и переменную успешного платежа и перенаправить оттуда.

Вам может понадобиться добавить переменную сеанса при запросе платежа, а затем проверить эту переменную сеанса, если платеж не прошел (похоже, вы проверяете платежные ошибки, верно?), чтобы убедиться, что конечный пользователь действительно получает запрос платежа. страницу для начала.

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

person muely2k1    schedule 22.01.2016