- Servidor VPS com licença perpétua ispmanager lite 5
- 10-20 usuários no servidor
- Google Agenda com lembretes regulares de quem ficou sem hospedagem
- O sapo sufocado paga por qualquer outra coisa, especialmente em uma assinatura
O objetivo é livrar-se do google calendar e dos lembretes manuais para o cliente de que ele precisa pagar pela hospedagem. Para se livrar do “deixa-lo trabalhar um pouco mais, ele logo vai pagar” “porque não é conveniente desligar”, e confia-lo a uma máquina sem alma.
Claro, no início eu procurei por isso, mas não encontrei nenhuma solução, tudo se resumia ao fato de que você precisa fazer uma assinatura do BILLmanager, mas eu tenho um ponto muito importante e sério nº 4, não vou me livrar disso. E a decisão acabou não sendo tão difícil.
Então, o que fazemos.
Crie a pasta users.addon, no diretório / usr / local / mgr5 / etc / sql /, dois arquivos vazios:
- dia de pagamento
- uwemail
Isso dará ao painel o comando para criar dois campos correspondentes no banco de dados
/usr/local/mgr5/etc/ispmgr.db
na tabela de usuários, onde os valores do painel de administração serão gravados.
Crie um arquivo ispmgr_mod_pay_data.xml na pasta / usr / local / mgr5 / etc / xml com o conteúdo
<?xml version="1.0" encoding="UTF-8"?>
<mgrdata>
<metadata name="user.edit">
<form>
<page name="main">
<field name="pay_date">
<input type="text" name="pay_date"/>
</field>
<field name="uwemail">
<input type="text" name="uwemail"/>
</field>
</page>
</form>
</metadata>
<lang name="ru">
<messages name="user.edit">
<msg name="pay_date" sqlname="pay_date"> </msg>
<msg name="uwemail" sqlname="uwemail"> email</msg>
</messages>
</lang>
<lang name="en">
<messages name="user.edit">
<msg name="pay_date" sqlname="pay_date">Paid before</msg>
<msg name="uwemail" sqlname="uwemail">User email</msg>
</messages>
</lang>
</mgrdata>
Isso dá à regra do painel que nossos campos são exibidos no formulário de edição do usuário.
Recarregue o painel:
/usr/local/mgr5/sbin/mgrctl -m ispmgr exit
Recebemos:

Nos campos escrevemos até que dia a hospedagem deverá funcionar, e qual e-mail do usuário, para onde enviaremos lembretes de que a hospedagem terminará em breve.
Agora você precisa criar um script que lembre os usuários de que a hospedagem termina com uma certa frequência. Notifique o administrador de que a hospedagem está prestes a terminar. Notifique o usuário e o administrador de que o usuário está desativado.
Estou perto de fazer php e escrevi um script.
<?php
$adminemail = "admin@gmail.com"; // email
$day_send_message = [30,7,5,3,1]; //
$db = new SQLite3('/usr/local/mgr5/etc/ispmgr.db');
$results = $db->query('SELECT * FROM users WHERE active == "on" AND pay_date IS NOT NULL');
while ($user = $results->fetchArray()) {
$days_left=floor( ( strtotime($user['pay_date']) - time() ) / (60 * 60 * 24));
if(in_array($days_left, $day_send_message)){
if($user['uwemail'] != ""){
mail($user['uwemail'], 'ISPMANAGER '.$days_left.' \', " ");
}
}
if( $days_left == 3 ) {
mail($adminemail, 'ISPMANAGER USER '.$user['name'], $user['name'] . " ".$days_left." ");
}
if($days_left <= 0){
mail($adminemail, 'ISPMANAGER USER '.$user['name'].' DISABLED', $user['name'].' ');
exec("/usr/local/mgr5/sbin/mgrctl -m ispmgr user.suspend elid=".$user["name"]);
if( $user['uwemail'] != "" ) {
mail($user['uwemail'], 'ISPMANAGER ', ' ');
}
}
// IF ,
}
Salvamos este script em qualquer lugar e chamamos do que você quiser, adicionamos uma tarefa ao cron para chamá-lo uma vez por dia. Tudo está pronto.
Agora a consciência está limpa, o sapo está satisfeito, ele não incorreu em despesas adicionais.
Resta preencher os dados dos usuários em que data a hospedagem foi paga e enviar e-mails aos usuários para lembretes.
Fico feliz se isso ajuda alguém.