Ir para conteúdo
View in the app

A better way to browse. Learn more.

Portal do Host

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Uma dúvida sobre o WHMCS.

Featured Replies

Postado

Bom dia senhores, estou com uma dúvida, no WHMCS tem como adicionar um lembrete antes do vencimento e três depois do vencimento, certo?

Teria como eu adicionar um lembrete extra no dia exato do vencimento?


Postado

Por padrão não é possível. Mas você pode criar este Hook que possuem esta função:

<?php

use WHMCS\Database\Capsule;

add_hook('DailyCronJob', 1, function() {

$hoje = date('Y-m-d');

// Buscar faturas vencendo hoje e ainda não pagas

$faturas = Capsule::table('tblinvoices')

->where('duedate', $hoje)

->where('status', 'Unpaid')

->get();

foreach ($faturas as $fatura) {

$cliente = Capsule::table('tblclients')->where('id', $fatura->userid)->first();

// Enviar o e-mail com base no template “Invoice Payment Reminder”

localAPI('SendEmail', [

'messagename' => 'Invoice Payment Reminder',

'id' => $fatura->id

]);

}

});

 Hospedagem de Sites, Revenda de Hospedagem, Servidores Virtuais, Registro de Domínios

Postado
  • Autor

Top amigo, mas no caso ele só vai disparar no dia do vencimento, certo?



Postado
Em 09/07/2025 em 16:03, Jefferson disse:

Por padrão não é possível. Mas você pode criar este Hook que possuem esta função:

Que bacana, dei uma melhorada no seu codigo. Adicionei o envio para dias diferentes com templates de email diferentes para cada dia.

OBS: Em $template defina o dia e o template de acordo com sua necessidade, -3 = 3 dias antes do vencimento. Invoice - 3 Dias antes referente ao template de email que seja enviado.

$templates = [
	-3 => 'Invoice - 3 Dias antes',
	-2 => 'Invoice - 2 Dias antes',
	-1 => 'Invoice - 1 Dia antes',
	0 => 'Invoice - Vence Hoje',
	1 => 'Invoice - 1 Dia Vencida',
	2 => 'Invoice - 2 Dias Vencida',
];
<?php

use WHMCS\Database\Capsule;

add_hook('DailyCronJob', 1, function () {

	$hoje = date('Y-m-d');
	
	$dataHoje = new DateTime($hoje);
	
	$templates = [
		-3 => 'Invoice - 3 Dias antes',		
		-2 => 'Invoice - 2 Dias antes',
		-1 => 'Invoice - 1 Dia antes',		
		0 => 'Invoice - Vence Hoje',		
		1 => 'Invoice - 1 Dia Vencida',		
		2 => 'Invoice - 2 Dias Vencida',	
	];
	
	$faturas = Capsule::table('tblinvoices')->where('status', 'Unpaid')->get();
	
	foreach ($faturas as $fatura) {
		
		$dataVencimento = new DateTime($fatura->duedate);		
		$intervalo = $dataHoje->diff($dataVencimento);
		$diasDiferenca = (int)$intervalo->format('%r%a');
		
		if (isset($templates[$diasDiferenca])) {
		
			localAPI('SendEmail', [
				'messagename' => $templates[$diasDiferenca],
				'id' => $fatura->id
			]);
		
		}
	}

});


Postado
Em 09/07/2025 em 17:58, MMHospedagem disse:

Que bacana, dei uma melhorada no seu codigo. Adicionei o envio para dias diferentes com templates de email diferentes para cada dia.

OBS: Em $template defina o dia e o template de acordo com sua necessidade, -3 = 3 dias antes do vencimento. Invoice - 3 Dias antes referente ao template de email que seja enviado.

$templates = [
	-3 => 'Invoice - 3 Dias antes',
	-2 => 'Invoice - 2 Dias antes',
	-1 => 'Invoice - 1 Dia antes',
	0 => 'Invoice - Vence Hoje',
	1 => 'Invoice - 1 Dia Vencida',
	2 => 'Invoice - 2 Dias Vencida',
];
<?php

use WHMCS\Database\Capsule;

add_hook('DailyCronJob', 1, function () {

	$hoje = date('Y-m-d');
	
	$dataHoje = new DateTime($hoje);
	
	$templates = [
		-3 => 'Invoice - 3 Dias antes',		
		-2 => 'Invoice - 2 Dias antes',
		-1 => 'Invoice - 1 Dia antes',		
		0 => 'Invoice - Vence Hoje',		
		1 => 'Invoice - 1 Dia Vencida',		
		2 => 'Invoice - 2 Dias Vencida',	
	];
	
	$faturas = Capsule::table('tblinvoices')->where('status', 'Unpaid')->get();
	
	foreach ($faturas as $fatura) {
		
		$dataVencimento = new DateTime($fatura->duedate);		
		$intervalo = $dataHoje->diff($dataVencimento);
		$diasDiferenca = (int)$intervalo->format('%r%a');
		
		if (isset($templates[$diasDiferenca])) {
		
			localAPI('SendEmail', [
				'messagename' => $templates[$diasDiferenca],
				'id' => $fatura->id
			]);
		
		}
	}

});

Legal. Um ajudando o outro 👍

 Hospedagem de Sites, Revenda de Hospedagem, Servidores Virtuais, Registro de Domínios

Postado
  • Autor

Obrigado amigos


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.
Nota: Sua postagem exigirá aprovação do moderador antes de ficar visível.

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

Quem Está Navegando 0

  • Nenhum usuário registrado visualizando esta página.

Informação Importante

Concorda com os nossos termos?

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.