2017-08-29 10 views
0

Je suis nouveau dans Whmcs. Comme je sais quand un Hook a appelé, whmcs cherchera un add_call dans les modules pour ce hook. Je veux savoir quel hook est appelé à ce moment-là. Je veux savoir quel hook est appelé dans le processus, sans modifier les fichiers de hooks. exemple: quand le client ajoute le crochet de fond x sera appelé et le système cherchera tout add_call pour cela, mais je veux que le module obtienne n'importe quel hook qui se produit (comme écouteur d'événement)Comment obtenir le nom du crochet appelé sur Whmcs?

+0

Bienvenue sur SO. S'il vous plaît nous montrer quelques efforts et une question spécifique - ne vous attendez pas à ce que la communauté vous donne une solution complète. –

Répondre

0

Il semble que vous ayez besoin d'un crochet global, qui selon ma connaissance n'est pas disponible.

Si vous êtes en train de déboguer, il y a un réglage dans les paramètres généraux: Hooks Debug Mode, il liste tous les hooks exécutés dans le journal d'activité.

Une autre option serait d'ajouter une fonction, et tous les crochets redirect à lui, .: par exemple

function customCatchAllHooks($vars) { 
    $trace = debug_backtrace(); 
    //Get calling function 
    if (isset($trace[1])) { 
     $info = $trace[1]['args']; 
     $hook = $info[0]; 
     $params = $info[1]; 

     error_log(print_r([$hook, $params], true), 3, __DIR__.'/hooks.log'); 

    } 

} 

//List of hooks, added just two as an example: 
add_hook('ClientAreaPageProfile', 1, 'customCatchAllHooks'); 
add_hook('ClientEdit', 1, 'customCatchAllHooks'); 
//and so on... 
+0

je vous remercie de votre attention.J'ai besoin de la fonction way.but $ trace ne renvoie aucune information sur hooks.any idée? –

+0

Bienvenue. J'ai testé ce code et ça marche. Vous devez visiter une page de profil client (Connexion en tant que client, puis visiter les détails) ou modifier le client du côté administrateur pour cet exemple afin de vous donner des résultats. – wesamly

+0

, je vais le tester asap.thankyou à nouveau. –