Antud:
- VPS Server igavese ispmanager lite 5 jaoks
- 10-20 kasutajat serveris
- Google Calendar regulaarsete meeldetuletustega, kellel on lõppenud tellimus hostimisega
- Tunne, et on vastik maksta millegi eest veelgi enam igakuise tellimuse eest
Eesmärk on vabaneda Google Calendarist ja manuaalsetest meeldetuletustest, et klientidele maksmisest meelde tuletada. Vabasta end mõttest 'lase tal veel natuke töötada, ta maksab peagi' ja 'on ebamugav välja lülitada', ning lase see hõlbustada masinal.
Loomulikult googeldasin ja otsisin, kuid ei leidnud lahendusi, kõik näis viitavat sellele, et on vaja tellida BILLmanager, kuid punkt nr 4 on mulle väga oluline ja tõsine, sellest ma vabaneda ei soovi. Ja lahendus osutus mitte nii keeruliseks.
Nii et, mida me teeme.
Loome katalooge users.addon, kaustas /usr/local/mgr5/etc/sql/, kaks tühi faili:
- pay_date
- uwemail
See annab paneeli käsu andmebaasis luua
/usr/local/mgr5/etc/ispmgr.db
tabelis users kaks vastavat välja, kuhu kirjutatakse väärtused administraatori paneelist.
Loome faili ispmgr_mod_pay_data.xml kaustas /usr/local/mgr5/etc/xml koos sisuga
Kuni maksekuupäev
Kasutaja e-post
Paid before
User email
See annab paneelile reegli, et meie väljad kuvatakse kasutaja redigeerimise vormis.
Taaskäivitame paneeli:
/usr/local/mgr5/sbin/mgrctl -m ispmgr exitSaame:

Väljadesse sisestame, kuni millise päevani hostimine peab kestma, ja milline on kasutaja e-post, kuhu saata meeldetuletusi, et hostimine peagi lõppeb.
Nüüd on vaja luua skript, mis tuletab kasutajatele meelde, et hostimine lõpeb teatud regulaarsusega. Teavitada administraatorit, et hostimine lõpeb. Teavitada kasutajat ja administraatorit, et kasutaja on keelatud.
Mulle meeldib PHP, seega olen selle peal skripti kirjutanud.
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 lõpetab hostimise '.$days_left.' päeva pärast', "Kasutaja teade, et hostimine lõppeb ".$days_left." päeva pärast");
}
}
if( $days_left == 3 ) {
mail($adminemail, 'ISPMANAGER KASUTAJA '.$user['name'], $user['name'] . " Hostimine lõppeb ".$days_left." päeva pärast");
}
if($days_left <= 0){
mail($adminemail, 'ISPMANAGER KASUTAJA '.$user['name'].' KEESTITUD', $user['name'].' Lülitatud');
exec("/usr/local/mgr5/sbin/mgrctl -m ispmgr user.suspend elid=".$user["name"]);
if( $user['uwemail'] != "" ) {
mail($user['uwemail'], 'ISPMANAGER hostimine on keelatud', 'Kasutaja teade, et hostimine on lõppenud');
}
}
// soovi korral võib samuti lisada väikese IF, et andmed kustutataks teatud aja pärast, aga mulle seda ei ole vaja
}
Salvesta see skript kuhu iganes ja nimega, mis sobib. Lisa cron ülesanne selle tõmbamiseks üks kord ööpäevas. Kõik on valmis.
Nüüd on südametunnistus puhas, konn on rahul, lisakulutusi ei ole.
Jäänud on täita kasutajate andmed, millal on hosting makstud, ja kasutajate emailid, kuhu saata meeldetuletusi.
Olen rõõmus, kui see kellelegi abiks on.
Allikas: habr.com
