Emana:
- VPS zerbitzaria betiko lizentzia duen ispmanager lite 5
- 10-20 erabiltzaile zerbitzari bakoitzeko
- Google Calendar ohiko abisuekin hostinga gabe geratu direnentzat
- Pena da beste edozer ordaintzea, batez ere harpidetzarekin.
Helburua da Google-ren egutegia eta eskuzko abisuak kentzea bezeroari hostinga ordaindu behar duela. Askatu "utzi apur bat gehiago lan egiten, laster ordainduko du", "nolabait deserosoa da itzaltzea" eta utzi hau arimarik gabeko makina bati.
Noski, lehenengo Googlen egin nuen eta bilatu nuen, baina ez nuen irtenbiderik aurkitu, BILLmanager-era harpidetu behar zarela laburbildu zen guztia, baina 4. puntua oso garrantzitsua eta serioa da niretzat, ez dut lortuko kendu. Eta erabakia ez zen hain zaila izan.
Orduan, zer egiten dugu?
Sortu karpeta bat users.addon, /usr/local/mgr5/etc/sql/ direktorioan, bi fitxategi huts:
- ordainketa_data
- uwemail
Honek panelari datu-basean sortzeko aginduko dio
/usr/local/mgr5/etc/ispmgr.db
Erabiltzaileen taulan dagozkien bi eremu daude non administrazio paneleko balioak idatziko diren.
Sortu ispmgr_mod_pay_data.xml izeneko fitxategia /usr/local/mgr5/etc/xml karpetan edukiarekin
<?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>
Honek panelari arau bat ematen dio, gure eremuak erabiltzailearen edizio formularioan bistaratzeko.
Berrabiarazi panela:
/usr/local/mgr5/sbin/mgrctl -m ispmgr exit
Lortzen dugu:
Eremuetan ostalaritzak zein egun arte funtzionatu behar duen idazten dugu, eta erabiltzailearen zein e-posta, non bidali abisuak ostalaritza laster amaituko den.
Orain erabiltzaileei ostalaritza tarte batzuetan amaitzen dela gogoraraziko dien script bat sortu behar dugu. Jakinarazi administratzaileari hostinga amaitzen ari dela. Jakinarazi erabiltzaileari eta administratzaileari erabiltzailea desgaituta dagoela.
PHP gustatzen zait eta script bat idatzi dut.
<?php
$adminemail = "[email protected]"; // 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 ΡΡΠΎ Π±Ρ Π΄Π°Π½Π½ΡΠ΅ ΡΠ΄Π°Π»ΡΠ»ΠΈΡΡ ΡΠ΅ΡΠ΅Π· Π½Π΅ΠΊΠΎΡΠΎΡΠΎΠ΅ Π²ΡΠ΅ΠΌΡ, Π½ΠΎ ΠΌΠ½Π΅ ΡΡΠΎ Π½Π΅ Π½ΡΠΆΠ½ΠΎ
}
Script hau edonon gordetzen dugu eta nahi dugun moduan deitzen diogu eta cron zeregin bat gehitzen diogu egunean behin deitzeko. Dena prest dago.
Orain nire kontzientzia garbi dago, apoa ase, eta ez dut kostu gehigarririk egin.
Ostalaritza zein datatan ordaindu den erabiltzaileen datuak eta erabiltzaileei abisuak bidaltzeko erabiltzaileen posta elektronikoa betetzea besterik ez da geratzen.
Pozik norbaiti laguntzen badio.
Iturria: www.habr.com