Ukunqanyulwa okuzenzakalelayo kwabasebenzisi ku-ISPManager5 lite ngaphandle kwe-BILLmanager

Inikezwe:

  1. Iseva ye-VPS enelayisensi engapheli ispmanager lite 5
  2. Abasebenzisi abangu-10-20 ngeseva ngayinye
  3. I-Google Khalenda enezikhumbuzi ezivamile zalabo abaphelelwe ukusingathwa
  4. Kuyihlazo ukukhokhela enye into, ikakhulukazi ngokubhalisele.

Umgomo uwukukhipha ikhalenda le-Google nezikhumbuzi ezenziwa ngesandla ekhasimendeni okumele lizikhokhele ngokubamba. Zikhulule kokuthi "mvumele asebenze kancane, uzokhokha maduze", "akunankinga ngandlela-thile ukuyicisha", futhi ubeke lokhu emshinini ongenamphefumulo.

Yiqiniso, ngiqale ngabheka ku-Google futhi ngasesha, kodwa angizange ngithole noma yiziphi izixazululo, konke kubilisiwe eqinisweni lokuthi udinga ukubhalisa ku-BILLmanager, kodwa iphuzu No. 4 libaluleke kakhulu futhi libucayi kimi, ngeke ngithole. yisuse. Futhi isinqumo siphenduke singenzima kangako.

Senzenjani-ke?

Dala ifolda abasebenzisi.addon, kuhlu lwemibhalo /usr/local/mgr5/etc/sql/, amafayela amabili angenalutho:

  1. idethi_yokukhokha
  2. uwemail

Lokhu kuzoyala iphaneli ukuthi lidale kusizindalwazi
/usr/local/mgr5/etc/ispmgr.db
kuthebula labasebenzisi kunezinkambu ezimbili ezihambisanayo lapho amanani asuka kuphaneli yomqondisi azobhalwa khona.

Dala ifayela elibizwa ngokuthi ispmgr_mod_pay_data.xml kufolda ethi /usr/local/mgr5/etc/xml enokuqukethwe

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

Lokhu kunikeza iphaneli umthetho ukuze izinkambu zethu ziboniswe efomini lokuhlela lomsebenzisi.

Qalisa kabusha iphaneli:

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

Sithola:

Ukunqanyulwa okuzenzakalelayo kwabasebenzisi ku-ISPManager5 lite ngaphandle kwe-BILLmanager

Emasimini sibhala kuze kube yiluphi usuku ukusingathwa okufanele lusebenze, futhi iyiphi i-imeyili yomsebenzisi, lapho kuthunyelwa khona izikhumbuzi ukuthi ukusingathwa kuzophela maduze.

Manje sidinga ukudala iskripthi esizokhumbuza abasebenzisi ukuthi ukusingathwa kugcina ngezikhathi ezithile. Yazisa umlawuli ukuthi ukusingathwa kuyaphela. Yazisa umsebenzisi nomphathi ukuthi umsebenzisi ukhutshaziwe.

Ngithanda i-php kuyo futhi ngibhale iskripthi.

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

Sigcina lesi sikripthi noma yikuphi futhi sikubize nganoma yini esiyifunayo, futhi sengeza umsebenzi we-cron ukuze sikubize kanye ngosuku. Konke sekulungile.

Manje unembeza wami uhlanzekile, ixoxo lanelisekile, futhi angizange ngibe nezindleko ezengeziwe.

Okusele nje ukugcwalisa idatha kubasebenzisi idethi ukusingathwa kwakhokhelwa ngayo, kanye ne-imeyili yabasebenzisi lapho bethumela khona izikhumbuzi kubasebenzisi.

Kuyajabulisa uma kusiza umuntu.

Source: www.habr.com

Engeza amazwana