Dati:
- Server VPS con licenza perpetua ispmanager lite 5
- 10-20 utenti sul server
- Google Calendar con promemoria regolari per chi ha esaurito hosting
- È frustrante pagare per qualcos'altro, soprattutto per un abbonamento
L'obiettivo è sbarazzarsi di Google Calendar e dei promemoria manuali per i clienti riguardo al pagamento dell'hosting. Liberarsi dal pensiero 'lasciamolo lavorare ancora un po', forse pagherà' e delegare questa gestione a una macchina.
Certo, ho cercato su Google e ho cercato, ma non ho trovato soluzioni; tutto tornava al fatto che dovevo sottoscrivere BILLmanager, ma il punto n. 4 è molto importante e serio, non intendo abbandonarlo. E la soluzione si è rivelata meno complessa di quanto pensassi.
Quindi, cosa facciamo.
Creiamo la cartella users.addon nella directory /usr/local/mgr5/etc/sql/, due file vuoti:
- pay_date
- uwemail
Questo darà il comando al pannello di creare nel database
/usr/local/mgr5/etc/ispmgr.db
nella tabella users due campi corrispondenti dove saranno scritti i valori dalla pannello di amministrazione.
Creiamo il file ispmgr_mod_pay_data.xml nella cartella /usr/local/mgr5/etc/xml con il contenuto
Scadenza pagamento
Email utente
Paid before
User email
Questo fornisce una regola al pannello affinché i nostri campi vengano visualizzati nel modulo di modifica utente.
Ricarichiamo il pannello:
/usr/local/mgr5/sbin/mgrctl -m ispmgr exitRiceviamo:

Nei campi inseriamo fino a che giorno deve funzionare l'hosting e quale email dell'utente deve ricevere i promemoria riguardanti la scadenza dell'hosting.
Adesso è necessario creare uno script che ricordi agli utenti che l'hosting sta per scadere con una certa periodicità. Informare l'amministratore che l'hosting sta per scadere. Notificare l'utente e l'amministratore che l'utente è disabilitato.
Mi piace PHP, quindi ho scritto lo script in esso.
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 il hosting scade tra '.$days_left.' giorni', "Testo per l'utente riguardo quanti giorni rimangono");
}
}
if( $days_left == 3 ) {
mail($adminemail, 'ISPMANAGER USER '.$user['name'], $user['name'] . " Il hosting scade tra ".$days_left." giorni");
}
if($days_left <= 0){
mail($adminemail, 'ISPMANAGER USER '.$user['name'].' DISABILITATO', $user['name'].' Disattivato');
exec("/usr/local/mgr5/sbin/mgrctl -m ispmgr user.suspend elid=".$user["name"]);
if( $user['uwemail'] != "" ) {
mail($user['uwemail'], 'ISPMANAGER hosting disattivato', 'Testo per l'utente che il hosting è scaduto');
}
}
// se si desidera, si può anche scrivere un piccolo IF per rimuovere i dati dopo un certo periodo, ma non ne ho bisogno
}
Salva questo script dove vuoi e chiamalo come preferisci, aggiungi un compito cron per richiamarlo una volta al giorno. È tutto pronto.
Ora la coscienza è a posto, la rana è soddisfatta, nessun costo aggiuntivo sostenuto.
Rimane da inserire i dati degli utenti riguardo alla data di pagamento dell'hosting e l'email degli utenti a cui inviare promemoria.
Sono felice se può essere utile a qualcuno.
Fonte: habr.com
