Ir para conteúdo
  • Cadastre-se

Ajuda com hook pin whmcs.red


Posts Recomendados

Olá, boa tarde.

Estou usando o Hook da WHMCS.RED e como falei com os proprietários, modifiquei para ficar ao meu gosto.

 

Realizei alguns ajustes simples para que o sistema gere um PIN por dia e para exibi-lo em um painel.

 

Agora estou com a intensão de gerar um pin novo sempre que o cliente clicar em um botão GERAR PIN.
Gostaria tambem de exibir estes campos na SIDEBAR, porem, não consegui (Meus conhecimentos nesta area são limitados)
 

Poderiam me ajudar com estes ajustes ?

 

Apenas para recapitular.
1 Criar um botão que gera o pin quando clicado 
2 Transferir a exibição do pin do painel para a sidebar.
 

Acredito que a função para este botão seria algo assim 
 

Porem, não sei criar o botão e faze-lo trabalhar.

// Botão Novo Pin
function novo_pin($id){
	$limite = 8;
	$resultado = substr(preg_replace("/[^0-9]/", "", md5(($id)*strtotime(date('Y-m-d H:i:s')))), $limite, $limite);
	return $resultado;
}

Segue abaixo o código completo modificado. (Saliento que os direitos de criação são da WHMCS.RED) Apenas modifiquei para meu uso.

<?php
// Desenvolvido por Joel - WHMCS.RED || Modificações de search inteligente feita por Luciano - WHMCS.RED
// Pegar Conexão com Banco de Dados
use WHMCS\Database\Capsule;
// Bloqueia o acesso direto ao arquivo
if (!defined("WHMCS")){
	die("Acesso restrito!");
}

// Monta o PIN Modelo novo (Renova a cada dia)
function montar_pin($id){
	$limite = 8;
	$resultado = substr(preg_replace("/[^0-9]/", "", md5(($id)*strtotime(today))), $limite, $limite);
	return $resultado;
}
// Página de Administrador
add_hook("AdminAreaClientSummaryPage", 1, function($vars){
	return "<div class='alert alert-success'><strong>PIN: ".montar_pin($vars["userid"])."</strong></div>";
});

//Pagina do Cliente Painel
add_hook('ClientAreaHomepagePanels', 1, function($homePagePanels) {
    $newPanel = $homePagePanels->addChild(
        'unique-css-name',
        array(
            'name' => 'Pin',
            'label' => '<strong>C&Oacute;DIGO PIN: '.montar_pin($_SESSION["uid"]).'</strong>',  
            'icon' => 'fa-lock',
            'order' => '99',
            'extras' => array(
                'color' => 'green',
            ),
            'footerHtml' => '<i class="fa fa-info-circle" aria-hidden="true"></i>  <strong>Um novo PIN será gerado todos os dias!</strong>',
        )
    );
// Repeat as needed to add enough children
    $newPanel->addChild(
        'unique-css-name-id1',
        array(
            'label' => '</strong>Forne&ccedil;a este c&oacute;digo, quando solicitado pela nossa equipe de atendimento. Por quest&otilde;es de seguran&ccedil;a, ele ser&aacute; solicitado em determinados tipos de atendimentos. Por exemplo, em atendimentos via E-mail ou Chat Online.',
            'order' => 10,
        )
    );
});

// Adicionando função de pesquisa do PIN
add_hook("IntelligentSearch", 1, function($vars){
	$pesquisa = array();
	foreach (capsule::table("tblclients")->get() as $clientes){
		$resultado = montar_pin($clientes->id);
		if($resultado == $vars["searchTerm"]){
			$idcliente = $clientes->id;
			$pin = $resultado;
		}
	}
	foreach (capsule::table("tblclients")->WHERE("id", $idcliente)->get() as $cliente){
		$pesquisa[] = '
		<div class="searchresult">
			<a href="clientssummary.php?userid='.$cliente->id.'">
				<strong>'.$cliente->firstname.' '.$cliente->lastname.'</strong>
				(PIN: '.$pin.')<br />
				<span class="desc">' . $cliente->email . '</span>
			</a>
		</div>';
	}
	return $pesquisa;
});
// Adiciona string para os templates de email
add_hook("EmailPreSend", 1, function($vars){
	$pinstring = array();
	$pinstring["pin"] = montar_pin($vars['relid']);
	return $pinstring;
});

 

Link para o comentário
Compartilhar em outros sites

38 minutos atrás, suportgc disse:

Olá, boa tarde.

Estou usando o Hook da WHMCS.RED e como falei com os proprietários, modifiquei para ficar ao meu gosto.

 

Realizei alguns ajustes simples para que o sistema gere um PIN por dia e para exibi-lo em um painel.

 

Agora estou com a intensão de gerar um pin novo sempre que o cliente clicar em um botão GERAR PIN.
Gostaria tambem de exibir estes campos na SIDEBAR, porem, não consegui (Meus conhecimentos nesta area são limitados)
 

Poderiam me ajudar com estes ajustes ?

 

Apenas para recapitular.
1 Criar um botão que gera o pin quando clicado 
2 Transferir a exibição do pin do painel para a sidebar.
 

Acredito que a função para este botão seria algo assim 
 

Porem, não sei criar o botão e faze-lo trabalhar.


// Botão Novo Pin
function novo_pin($id){
	$limite = 8;
	$resultado = substr(preg_replace("/[^0-9]/", "", md5(($id)*strtotime(date('Y-m-d H:i:s')))), $limite, $limite);
	return $resultado;
}

Segue abaixo o código completo modificado. (Saliento que os direitos de criação são da WHMCS.RED) Apenas modifiquei para meu uso.


<?php
// Desenvolvido por Joel - WHMCS.RED || Modificações de search inteligente feita por Luciano - WHMCS.RED
// Pegar Conexão com Banco de Dados
use WHMCS\Database\Capsule;
// Bloqueia o acesso direto ao arquivo
if (!defined("WHMCS")){
	die("Acesso restrito!");
}

// Monta o PIN Modelo novo (Renova a cada dia)
function montar_pin($id){
	$limite = 8;
	$resultado = substr(preg_replace("/[^0-9]/", "", md5(($id)*strtotime(today))), $limite, $limite);
	return $resultado;
}
// Página de Administrador
add_hook("AdminAreaClientSummaryPage", 1, function($vars){
	return "<div class='alert alert-success'><strong>PIN: ".montar_pin($vars["userid"])."</strong></div>";
});

//Pagina do Cliente Painel
add_hook('ClientAreaHomepagePanels', 1, function($homePagePanels) {
    $newPanel = $homePagePanels->addChild(
        'unique-css-name',
        array(
            'name' => 'Pin',
            'label' => '<strong>C&Oacute;DIGO PIN: '.montar_pin($_SESSION["uid"]).'</strong>',  
            'icon' => 'fa-lock',
            'order' => '99',
            'extras' => array(
                'color' => 'green',
            ),
            'footerHtml' => '<i class="fa fa-info-circle" aria-hidden="true"></i>  <strong>Um novo PIN será gerado todos os dias!</strong>',
        )
    );
// Repeat as needed to add enough children
    $newPanel->addChild(
        'unique-css-name-id1',
        array(
            'label' => '</strong>Forne&ccedil;a este c&oacute;digo, quando solicitado pela nossa equipe de atendimento. Por quest&otilde;es de seguran&ccedil;a, ele ser&aacute; solicitado em determinados tipos de atendimentos. Por exemplo, em atendimentos via E-mail ou Chat Online.',
            'order' => 10,
        )
    );
});

// Adicionando função de pesquisa do PIN
add_hook("IntelligentSearch", 1, function($vars){
	$pesquisa = array();
	foreach (capsule::table("tblclients")->get() as $clientes){
		$resultado = montar_pin($clientes->id);
		if($resultado == $vars["searchTerm"]){
			$idcliente = $clientes->id;
			$pin = $resultado;
		}
	}
	foreach (capsule::table("tblclients")->WHERE("id", $idcliente)->get() as $cliente){
		$pesquisa[] = '
		<div class="searchresult">
			<a href="clientssummary.php?userid='.$cliente->id.'">
				<strong>'.$cliente->firstname.' '.$cliente->lastname.'</strong>
				(PIN: '.$pin.')<br />
				<span class="desc">' . $cliente->email . '</span>
			</a>
		</div>';
	}
	return $pesquisa;
});
// Adiciona string para os templates de email
add_hook("EmailPreSend", 1, function($vars){
	$pinstring = array();
	$pinstring["pin"] = montar_pin($vars['relid']);
	return $pinstring;
});

 

Sua intenção pode até ser boa mas para isso ser possível você teria que armazenar o PIN em algum local ou seja na minha visão é inviável e sinceramente sem sentido!

Eu tenho um produto similar a esse na qual o PIN é gerado por hora, dia, mês ou ano... mais variação do que essa impossível kkk

Link para o comentário
Compartilhar em outros sites

3 minutos atrás, edvan disse:

Sua intenção pode até ser boa mas para isso ser possível você teria que armazenar o PIN em algum local ou seja na minha visão é inviável e sinceramente sem sentido!

Entendo.

Na realidade, eu queria apenas exibir o PIN se o cliente clicasse em um botão.
Este PIN serve apenas para identificar o cliente mais facilmente.

Seria muito complicado armazenar este PIN e altera-lo quando o cliente clicar ?

Link para o comentário
Compartilhar em outros sites

8 minutos atrás, suportgc disse:

Entendo.

Na realidade, eu queria apenas exibir o PIN se o cliente clicasse em um botão.
Este PIN serve apenas para identificar o cliente mais facilmente.

Seria muito complicado armazenar este PIN e altera-lo quando o cliente clicar ?

Vai depender do que você entende como complicado... se você não tem conhecimentos básicos em PHP sem dúvidas sim!

Link para o comentário
Compartilhar em outros sites

Agora, edvan disse:

Vai depender do que você entende como complicado... se você não tem conhecimentos básicos em PHP sem dúvidas sim!

Entendi.
Realmente sou bem leigo neste quesito.

Para criar um botão que apenas exibe o pin você sabe me dizer ?

Apenas por estética mesmo, pois o pin mudaria por hora clicando nele ou não.

Link para o comentário
Compartilhar em outros sites

5 minutos atrás, suportgc disse:

Entendi.
Realmente sou bem leigo neste quesito.

Para criar um botão que apenas exibe o pin você sabe me dizer ?

Apenas por estética mesmo, pois o pin mudaria por hora clicando nele ou não.

Sugiro que procure estudar a documentação e lá você encontrará todo material voltado aos desenvolvedores.

Boa sorte!

Link para o comentário
Compartilhar em outros sites

Em 25/08/2017 em 13:53, suportgc disse:

Entendi.
Realmente sou bem leigo neste quesito.

Para criar um botão que apenas exibe o pin você sabe me dizer ?

Apenas por estética mesmo, pois o pin mudaria por hora clicando nele ou não.

Caso queira que exiba o PIN somente se clicar no botão da uma estudada em Javascript.

Vou anotar suas necessidades aqui para atualizar o Hook do PIN, foi uma coisa feita meio rápido, por isso acabamos não colocando muitas opções.

Link para o comentário
Compartilhar em outros sites

Em 28/08/2017 em 08:52, Joel Emanoel disse:

Caso queira que exiba o PIN somente se clicar no botão da uma estudada em Javascript.

Vou anotar suas necessidades aqui para atualizar o Hook do PIN, foi uma coisa feita meio rápido, por isso acabamos não colocando muitas opções.

Olá Joel.

Agradeço sua atenção

O sistema esta sendo realmente util.

Estas mudanças no sistema, serão muito bem vindas.

Seria interessante fazer como o Sr Edvan disse, salvar os pins em um local, para consulta, sendo atrelados ao atendimento prestado.

 

Abraço.

Link para o comentário
Compartilhar em outros sites

1 hora atrás, suportgc disse:

Olá Joel.

Agradeço sua atenção

O sistema esta sendo realmente util.

Estas mudanças no sistema, serão muito bem vindas.

Seria interessante fazer como o Sr Edvan disse, salvar os pins em um local, para consulta, sendo atrelados ao atendimento prestado.

 

Abraço.

Particularmente acho inviável essa ideia, o PIN condicionado ao ID do cliente ou dia, mês, ano, hora é suficiente para gerar um PIN diferente a cada dia,mês e etc...

Link para o comentário
Compartilhar em outros sites

3 minutos atrás, edvan disse:

Particularmente acho inviável essa ideia, o PIN condicionado ao ID do cliente ou dia, mês, ano, hora é suficiente para gerar um PIN diferente a cada dia,mês e etc...

Olá Edvan.

Com o codigo atual, ja gera um pin diferente por dia.

Acredito que seria legal apenas atribuir a uma tabela, onde cada pin, seja salvo e anexado ao atendimento, fazendo com que fique mais dinamico localizar os dados do atendimento via pin.

No proprio pin, poderia incluir um breve resumo do atendimento.

Link para o comentário
Compartilhar em outros sites

Participe da conversa

Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.

Visitante
Infelizmente, seu conteúdo contém termos que não são permitimos. Edite seu conteúdo para remover as palavras destacadas abaixo.
Responder

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emojis são permitidos.

×   Seu link foi automaticamente incorporado.   Mostrar como link

×   Seu conteúdo anterior foi restaurado.   Limpar o editor

×   Não é possível colar imagens diretamente. Carregar ou inserir imagens do URL.

  • Quem Está Navegando   0 membros estão online

    • Nenhum usuário registrado visualizando esta página.
×
×
  • Criar Novo...

Informação Importante

Concorda com os nossos termos?