Как добавить крючок для WHMCS, когда клиент оплачивает свой счет?

Последние несколько часов я пытался понять, как добавить хук в WHMCS. Сначала я попробовал хук PendingOrder, который так и не был вызван. Затем я попробовал AcceptOrder, который, похоже, так и не был вызван. Наконец, я попробовал хук InvoidPaid, который тоже не работает. Я делаю что-то неправильно?

Я включил свой хук в AddonModules, но похоже, что я не могу вызвать какие-либо хуки (или я использую неправильный)

Что я пытаюсь сделать, так это просто запустить PHP-скрипт, который содержит все настраиваемые поля, которые пользователь ввел при оплате заказа.

Как мне это сделать?

Мой основной модуль:

<?php
/**
 * @package    GSProv
 * @author     -
 * @copyright  -
 * @license    None
 * @version    $Id$
 * @link       -
 */

if (!defined("WHMCS"))
{
    die("Can't access this file directly!");
}
add_hook("InvoicePaid", 1, "gsprov_hook_provision");
add_hook("InvoiceUnpaid", 1, "gsprov_hook_suspend");

function gsprov_hook_provision($params)
{
    $time = time();
    mysql_connect("localhost", "root", "password");
    mysql_select_db("testdb");
    mysql_query("INSERT INTO log VALUES ($time, 'Order paid for!'");
}

function gsprov_hook_suspend($params)
{
    $time = time();
    mysql_connect("localhost", "root", "password");
    mysql_select_db("testdb");
    mysql_query("INSERT INTO log VALUES ($time, 'Order not paid for :('");
}

?>

person dreadiscool    schedule 11.08.2014    source источник
comment
Ошибки, если они есть; проверить их? Кроме того, примечание: ($time, следует заключать в кавычки, так как это не int; скорее всего это не так и выдаст ошибку.   -  person Funk Forty Niner    schedule 11.08.2014
comment
Разве time() не возвращает int, содержащий временную метку unix?   -  person dreadiscool    schedule 11.08.2014
comment
Ах, да, если это временная метка unix.   -  person Funk Forty Niner    schedule 11.08.2014
comment
это может помочь вам hetnix.com/hetnix/   -  person SolaceBeforeDawn    schedule 24.05.2016


Ответы (1)


В вашем SQL есть ошибка, в ваших запросах отсутствует закрывающая скобка.

mysql_query("INSERT INTO log VALUES ($time, 'Order paid for!'");

Должно быть

mysql_query("INSERT INTO log VALUES ($time, 'Order paid for!')");
person Geoffrey    schedule 17.10.2016
comment
Я не уверен, действительно ли это было проблемой, так как это был проект двухлетней давности, но, учитывая, что он кажется правильным, и вы единственный, кто ответил, я продолжу и отмечу его как правильный. - person dreadiscool; 19.10.2016