Resultados 1 a 8 de 8
  1. #1
    WHT-BR Top Member
    Data de Ingresso
    Nov 2010
    Posts
    1,611

    [whmcs] hook para remover suspensão por ticket e email

    Pessoal,

    Hoje eu enchi o saco do Carlo para fazer um um Hook bem bacana p/ whmcs, foram várias horas de testes até que a condição atual do script parece estar 100% funcional.

    Objetivo do script:
    No meu caso, estou utilizando em conjunto com um departamento de ticket para receber comprovantes de pagamento.
    Como alguns clientes tem dificuldade de acessar o painel de controle, eu habilitei este departamento para abrir ticket automaticamente com o envio de emails.

    E vamos supor que o site do cliente esteja suspenso, e mesmo sendo um cliente inadimplente, você crie a facilidade do serviço ser reativado automaticamente com a abertura do ticket.

    O cliente precisa mencionar no ticket o domínio que está suspenso para que o script faça uma verificação e identifique o domínio do cliente e faça a remoção da suspensão.

    Exemplo:
    Titulo do ticket = Irrelevante
    Texto do ticket:
    Cara, pelo amor de deus, esqueci de fazer o pagamento, preciso que meu site volte a funcionar quanto antes, estou enviando o comprovante do deposito feito na sua conta, o site é meusite.com.br
    Assim que o cliente abrir o ticket, o hook vai funcionar e vai remover a suspensão do cliente e o mais interessante "temporariamente"

    Sendo assim, acredito que clientes que fazem deposito bancario, podem simplesmente enviar um email em vez de ficar no anonimato por ter dificuldade de acessar o painel de cliente.

    Vamos a instalação:
    Salve este codigo em PHP com o nome "liberarConta.php"
    Código PHP:
    <?php

    function liberarConta($vars) {

        if(
    $vars['deptid'] == '1'){

            
    /*
             * 1: Qualquer um que enviar o e-mail com um domínio irá ser liberado.
             * 0: O domínio só será liberado se o cliente for realmente dono do domínio
             */
            
    $liberar '1';

            function 
    pegaUrl($texto){

                
    $pattern '/[a-zA-Z0-9\.-]*\.[a-z]{2,}/';
                
    preg_match_all($pattern$texto$url);

                foreach(
    $url[0] as $key => $value){
                    if(
    checkdnsrr($value))
                        
    $retorno[] = $value;
                }

                return 
    $retorno;

            }

            
    $dominio pegaUrl($vars['message']);
            
    $userid $vars['userid'];

            
    $t count($dominio);
            if(
    $t 0){

                
    $c 1;
                
    $sql '';

                foreach(
    $dominio as $key){
                    if(
    $t == $c)
                        
    $sql .= "domain LIKE '%"$key ."%'";
                    else
                        
    $sql .= "domain LIKE '%"$key ."%' OR ";
                    
    $c++;
                }

                include(
    "../../dbconnect.php");

                if(
    $liberar == 0)
                    
    $sqlComando "SELECT id FROM tblhosting WHERE userid='".$userid."' AND (" $sql ")";
                else if(
    $liberar == 1)
                    
    $sqlComando "SELECT id FROM tblhosting WHERE " $sql;

                
    $query_dominios mysql_query($sqlComando) or die (mysql_error());
                while(
    $query_dominios_while mysql_fetch_assoc($query_dominios)){

                    
    $url "http://seusite/whmcs/includes/api.php"# URL to WHMCS API file
                    
    $username "seu login do whmcs"# Admin username goes here
                    
    $password "sua senha do whmcs"# Admin password goes here

                    
    $postfields["username"] = $username;
                    
    $postfields["password"] = md5($password);
                    
    $postfields["action"] = "moduleunsuspend"#action performed by the API:Functions
                    
    $postfields["accountid"] = $query_dominios_while['id'];

                    
    $ch curl_init();
                    
    curl_setopt($chCURLOPT_URL$url);
                    
    curl_setopt($chCURLOPT_POST1);
                    
    curl_setopt($chCURLOPT_TIMEOUT100);
                    
    curl_setopt($chCURLOPT_RETURNTRANSFER1);
                    
    curl_setopt($chCURLOPT_POSTFIELDS$postfields);
                    
    $data curl_exec($ch);
                    
    curl_close($ch);

                    
    $data explode(";",$data);
                    foreach (
    $data AS $temp) {
                        
    $temp explode("=",$temp);
                        
    $results[$temp[0]] = $temp[1];
                    }

                    if (
    $results["result"]=="success") {
                        function 
    somar_dias($data$dias) {
                            
    $data explode("-"$data);
                            
    $resultado date("Y-m-d"mktime(000$data[1], $data[2]+$dias$data[0]));
                            return 
    $resultado;
                        }
                        
    mysql_query("UPDATE tblhosting SET overideautosuspend='on', overidesuspenduntil='".somar_dias(date("Y-m-d"), 5)."'") or die (mysql_error());
                        
    //mail('emailparaverificarbug@email.com.br', 'Debug', 'Sucesso - '.$postfields["accountid"]);
                    
    } else {
                        
    $erro "The following error occured: ".$results["message"];
                        
    //mail('emailparaverificarbug@email.com.br', 'Debug', $erro);
                    
    }

                }

            }

        }

    }

    add_hook("TicketOpen"1"liberarConta");

    ?>
    Você deve configurar algumas linhas no script:

    Linha 5 = Coloque o ID do departamento que vai aceitar os emails para remover a suspensão da conta (estou utilizando o departamento com ID 1)
    Código PHP:
        if($vars['deptid'] == '1'){ 
    Linha 11 = Utilize 0 para receber solicitação de desbloqueio de clientes cadastrados ou 1 para qualquer ticket aberto
    Código PHP:
            $liberar '1'
    Linhas 54, 55 e 56 = A url da API do whmcs, Login e senha do whmcs
    Código PHP:
                    $url "http://seusite/whmcs/includes/api.php"# URL to WHMCS API file
                    
    $username "seu login do whmcs"# Admin username goes here
                    
    $password "sua senha do whmcs"# Admin password goes here 
    Linha 84 = Definir o numero de dias para remoção temporaria da suspensão. (Está marcado com 5 dias)
    Código PHP:
                        mysql_query("UPDATE tblhosting SET overideautosuspend='on', overidesuspenduntil='".somar_dias(date("Y-m-d"), 5)."'") or die (mysql_error()); 
    Linhas 85 e 88 = Email para debug
    Código PHP:
                        //mail('emailparaverificarbug@email.com.br', 'Debug', 'Sucesso - '.$postfields["accountid"]); 
    Código PHP:
                        //mail('emailparaverificarbug@email.com.br', 'Debug', $erro); 
    Depois envie o arquivo para:
    Então teste para verificar se está tudo ok

    Bom, como foi o Carlo que desenvolveu o script, peço que tire o escorpião do bolso e faça uma doação p/ ele

    Como o codigo ta aberto, se alguém souber de alguma complementação p/ melhorá-lo, acho que vai ajudar.

    Segue o link dele: (aceita pagseguro, paypal e Moip)
    Mdulo MoIP Pagamento Direto com Retorno Automtico Grátis.
    Última edição por chuvadenovembro; 29-07-2011 às 03:15.
    oGigante.com*• Revenda de Hospedagem Cloud Linux + WHMCS Grátis
    VWhost.com.br • Revenda de Hospedagem Linux Cpanel + CloudFlare
    Zocka.com.br • Hospedagem de Sites Cpanel + Construtor de Sites

  2. #2
    Guru Junior
    Data de Ingresso
    Mar 2011
    Localização
    /home/totals
    Posts
    184
    Muito legal, parabens.

  3. #3
    WHT-BR Top Member
    Data de Ingresso
    Dec 2010
    Localização
    /sc/rionegrinho
    Posts
    1,036
    Quem é o Carlo?
    Alexandre Silva Hostert

    Veezon
    Gerenciamento de Servidores


    http://veezon.com.br
    http://br.linkedin.com/in/alexandreveezon

  4. #4
    WHT-BR Top Member
    Data de Ingresso
    Nov 2010
    Posts
    1,611
    Opa Alexandre,

    O nome dele é Carlos Shneider, não sei se ele tem cadastro aqui no forum.

    Mas ele tem feito uns modulos legais p/ whmcs, fez do moip, moip pd, pagseguro e autologin (este ultimo é p/ cliente acessar o whmcs sem precisar digitar login e senha...)
    oGigante.com*• Revenda de Hospedagem Cloud Linux + WHMCS Grátis
    VWhost.com.br • Revenda de Hospedagem Linux Cpanel + CloudFlare
    Zocka.com.br • Hospedagem de Sites Cpanel + Construtor de Sites

  5. #5
    Web Hosting Master
    Data de Ingresso
    Aug 2011
    Localização
    /home
    Posts
    897
    Vou ver se da certo aqui.
    Obrigado por ajudar.


  6. #6
    WHT-BR Top Member
    Data de Ingresso
    Nov 2010
    Posts
    1,611
    Eu tenho o habito de postar alguns tutoriais ou dicas nos foruns principalmente p/ poder utilizar no futuro, p/ mim é como armazenar nas nuvens hehehehe

    Hoje não foi diferente, precisei utilizar este hook (pois não tinha ele mais no meu whmcs) e recorri ao forum.

    oGigante.com*• Revenda de Hospedagem Cloud Linux + WHMCS Grátis
    VWhost.com.br • Revenda de Hospedagem Linux Cpanel + CloudFlare
    Zocka.com.br • Hospedagem de Sites Cpanel + Construtor de Sites

  7. #7
    WHT-BR Top Member
    Data de Ingresso
    Dec 2010
    Localização
    /sc/rionegrinho
    Posts
    1,036
    hahaha, cara esperto
    Alexandre Silva Hostert

    Veezon
    Gerenciamento de Servidores


    http://veezon.com.br
    http://br.linkedin.com/in/alexandreveezon

  8. #8
    Louco pelo WHT Brasil
    Data de Ingresso
    Nov 2010
    Localização
    Brasil, São paulo
    Posts
    109
    Chuva, to atras de um HooK ou alternativa para envio de e-mails de cancelamento tipo igual a envios de e-mails de cobrança, tipo configurei whmcs para cancelar contas com 40 dias, de ai tipo com 3 dias avisar ao cliente do cancelamento e exclusão de conta de ai com 5 com 2 dias etc..

    To fazendo alguns testes mais ta osso, ideias?
    Webin Serviços de internet Ltda.
    Revendas de Hospedagem (USA e BR) com CloudLinux, WHMCS grátis, Construtor de sites, Softaculous, NGINX, DNS personalizados, CLUSTER de DNS.
    webinhost.com.br www.webinrevenda.com.br / www.webinidc.com.br

Permissões de Postagem

  • Você não pode iniciar novos tópicos
  • Você não pode enviar respostas
  • Você não pode enviar anexos
  • Você não pode editar suas mensagens
  •