如果通过WHMCS Addon Module

时间:2016-01-13 12:27:12

标签: php redirect whmcs

我提交了一个相关查询:Redirect to custompage.php instead of viewinvoice.php if payment fails in WHMCS Vs 6.2.0,我得到了一个很棒的回复,我成功实施了。

如果可能,我希望将我的代码解决方案移植到自定义构建的WHMCS插件模块中 通过利用addon模块的WHMCS _output函数来实现 来自支付网关的输出事务失败消息。

我没有指出,模块应该在WHMCS中定义的钩子是在名为“hooks.php”的文件中定义的。 这应该在我的模块文件夹中。

我的设计目标是检测我是否在viewinvoice.php页面上,然后在钩子中重定向到addon模块文件 如下图所示:

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插件模块文件? 或者我是以错误的方式解决问题?

任何人都可以给我一个提示吗?

1 个答案:

答案 0 :(得分:0)

有趣 - 您能否验证是否按预期在客户区页面上调用了该功能?我还没有尝试像那样声明这个功能。如果我没弄错的话,add_hook函数正在查找要执行的函数的实际字符串名称 - 如果你声明这样的函数代替提供名称,我认为它不会执行。我在我编写的与WHMCS(Dunamis Framework)一起使用的框架中做了类似的事情 - 它允许在addon模块的'hooks'文件夹中添加钩子文件,然后框架抓住它们,并将它们添加到堆栈中执行,但我没有尝试过这种方法。

对于您的问题,我认为您可以使用与您遇到的其他问题类似的方法。 addon模块文件夹中的hooks.php文件也将被添加到堆栈中并在初始化WHMCS应用程序后执行,因此您可以检查您所在文件的名称以及成功的支付变量并从那里重定向。 / p>

您可能需要在请求付款时添加会话变量,然后在付款失败时检查该会话变量(看起来您正在检查付款失败,是吗?)以确保最终用户实际到达要开始的付款请求页面。

希望有帮助...