Pedhot otomatis pangguna ing ISPManager5 lite tanpa BILLmanager

Given:

  1. Server VPS kanthi lisensi langgeng ispmanager lite 5
  2. 10-20 pangguna saben server
  3. Google Calendar karo pangeling biasa kanggo sing wis entek hosting
  4. Iku isin kanggo mbayar apa-apa liyane, utamané karo langganan.

Tujuane kanggo nyingkirake tanggalan Google lan pangeling manual kanggo klien yen dheweke kudu mbayar hosting. Mbebasake dhewe saka "supaya dheweke bisa kerja luwih cepet, dheweke bakal mbayar rauh", "iku ora nyenengake kanggo mateni", lan pasrahake menyang mesin tanpa jiwa.

Mesthi, aku pisanan Googled lan nelusuri, nanging ora nemu solusi, iku kabeh nggodhok mudhun kanggo kasunyatan sing kudu langganan BILLmanager, nanging titik No.. 4 penting banget lan serius kanggo kula, aku ora bakal njaluk. nyingkirake. Lan keputusane ternyata ora angel banget.

Dadi apa sing kudu kita lakoni?

Gawe folder users.addon, ing direktori /usr/local/mgr5/etc/sql/, rong file kosong:

  1. tanggal_bayar
  2. uwemail

Iki bakal mrentah panel kanggo nggawe ing database
/usr/local/mgr5/etc/ispmgr.db
ing tabel pangguna ana rong kolom sing cocog ing ngendi nilai saka panel admin bakal ditulis.

Gawe file sing diarani ispmgr_mod_pay_data.xml ing folder /usr/local/mgr5/etc/xml sing isine

<?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>

Iki menehi panel aturan supaya kolom kita ditampilake ing wangun suntingan pangguna.

Urip maneh panel:

/usr/local/mgr5/sbin/mgrctl -m ispmgr exit

Kita njaluk:

Pedhot otomatis pangguna ing ISPManager5 lite tanpa BILLmanager

Ing lapangan kita nulis nganti dina apa hosting kudu bisa digunakake, lan apa email pangguna, ngendi ngirim pangeling yen hosting bakal mungkasi rauh.

Saiki kita kudu nggawe skrip sing bakal ngelingake pangguna yen hosting rampung ing sawetara interval. Ngabari admin yen hosting wis rampung. Ngabari pangguna lan admin yen pangguna dipateni.

Aku seneng php lan nulis skrip.

<?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 что бы данные удалялись через некоторое время, но мне это не нужно
}

Kita nyimpen skrip iki ing ngendi wae lan nyebutake apa wae sing dikarepake, lan nambah tugas cron kanggo nelpon sapisan dina. Kabeh wis siyap.

Saiki kalbuku wis resik, kodhok wis marem, lan ora ana biaya tambahan.

Kabeh sing isih ana yaiku ngisi data ing pangguna sing tanggal hosting dibayar, lan email pangguna kanggo ngirim pangeling menyang pangguna.

Seneng yen mbantu wong liya.

Source: www.habr.com

Add a comment