duke pasur parasysh:
- Serveri VPS me licencë të përhershme ispmanager lite 5
- 10-20 përdorues për server
- Kalendari Google me përkujtues të rregullt për ata që po mbarojnë hosting
- Është turp të paguash për çdo gjë tjetër, veçanërisht me një abonim.
Qëllimi është të heqësh qafe kalendarin e Google dhe kujtesat manuale për klientin që duhet të paguajë për pritjen. Lironi veten nga "lëreni të punojë pak më shumë, ai do të paguajë së shpejti", "është disi e papërshtatshme ta fikni atë" dhe ia besoni këtë një makinerie pa shpirt.
Sigurisht qe fillimisht kerkova ne google por nuk gjeta ndonje zgjidhje, gjithcka perfundoi ne faktin qe duhet te abonoheni ne BILLmanager, por pika nr 4 eshte shume e rendesishme dhe serioze per mua, nuk do ta marr. shpëtoj prej tij. Dhe vendimi doli të ishte jo aq i vështirë.
Pra, çfarë të bëjmë?
Krijo një dosje users.addon, në drejtorinë /usr/local/mgr5/etc/sql/, dy skedarë bosh:
- data_pagimi
- uwemail
Kjo do të urdhërojë panelin të krijojë në bazën e të dhënave
/usr/local/mgr5/etc/ispmgr.db
në tabelën e përdoruesve ka dy fusha përkatëse ku do të shkruhen vlerat nga paneli i administratorit.
Krijo një skedar të quajtur ispmgr_mod_pay_data.xml në dosjen /usr/local/mgr5/etc/xml me përmbajtjen
<?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>
Kjo i jep panelit një rregull në mënyrë që fushat tona të shfaqen në formën e modifikimit të përdoruesit.
Rinisni panelin:
/usr/local/mgr5/sbin/mgrctl -m ispmgr exitNe kemi marrë:

Në fushat ne shkruajmë deri në cilën ditë duhet të funksionojë hosti, dhe çfarë emaili të përdoruesit, ku të dërgojmë kujtime që hostimi do të përfundojë së shpejti.
Tani duhet të krijojmë një skript që do t'u kujtojë përdoruesve se hostimi përfundon në disa intervale. Njoftoni administratorin që hostimi po përfundon. Njoftoni përdoruesin dhe administratorin se përdoruesi është i çaktivizuar.
Më pëlqen php në të dhe kam shkruar një skenar.
<?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 что бы данные удалялись через некоторое время, но мне это не нужно
}
Ne e ruajmë këtë skript kudo dhe e quajmë si të duam, dhe shtojmë një detyrë cron për ta thirrur një herë në ditë. Gjithçka është gati.
Tani ndërgjegjja ime është e pastër, zhaba është e kënaqur dhe nuk kam bërë asnjë kosto shtesë.
Mbetet vetëm të plotësohen të dhënat e përdoruesve në të cilën datë është paguar hostimi dhe emaili i përdoruesve ku t'u dërgojnë përkujtues përdoruesve.
Gëzohem nëse ndihmon dikë.
Burimi: www.habr.com
