Ho khaola basebelisi ka bohona ho ISPManager5 lite ntle le BILLmanager

Fuoa:

  1. Seva ea VPS e nang le laesense e sa feleng ispmanager lite 5
  2. Basebelisi ba 10-20 ka seva
  3. Khalendara ea Google e nang le likhopotso tsa kamehla bakeng sa ba felletsoeng ke moamoheli
  4. Ke lihlong ho lefella ntho leha e le efe e 'ngoe, haholo-holo ka ho ngolisa.

Sepheo ke ho tlosa khalendara ea Google le likhopotso tsa bukana ho moreki hore o hloka ho lefa bakeng sa moamoheli. Itokolle ho "mo lumelle hore a sebetse ho feta, o tla lefa haufinyane", "ke ntho e sa thabiseng ka tsela e itseng ho e tima", 'me u behe sena mochine o se nang moea.

Ha e le hantle, ke ile ka qala ho Google 'me ka batlisisa, empa ha kea ka ka fumana litharollo leha e le life, tsohle li phehiloe ka taba ea hore u hloka ho ngolisa ho BILLmanager, empa ntlha ea 4 ke ea bohlokoa haholo ebile e tebile ho' na, nke ke ka e fumana. e tlose. 'Me qeto e ile ea bonahala e se thata hakaalo.

Joale re etsa’ng?

Theha foldara basebelisi.addon, ho /usr/local/mgr5/etc/sql/ directory, lifaele tse peli tse se nang letho:

  1. letsatsi_moputso
  2. uwemail

Sena se tla laela phanele hore e thehe database
/usr/local/mgr5/etc/ispmgr.db
tafoleng ea basebelisi ho na le likarolo tse peli tse tsamaellanang moo ho tla ngoloa litekanyetso tse tsoang phanele ea admin.

Etsa faele e bitsoang ispmgr_mod_pay_data.xml ho /usr/local/mgr5/etc/xml foldareng ka litaba

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

Sena se fa phanele molao e le hore masimo a rona a hlahisoe ka foromo ea ho hlophisa ea mosebelisi.

Qala phanele hape:

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

Re fumana:

Ho khaola basebelisi ka bohona ho ISPManager5 lite ntle le BILLmanager

Masimong re ngola ho fihlela letsatsi leo moamoheli a lokelang ho sebetsa ka lona, ​​​​le hore na ke lengolo-tsoibila lefe la mosebelisi, moo o ka romellang likhopotso tsa hore moamoheli o tla fela haufinyane.

Hona joale re hloka ho theha script e tla hopotsa basebelisi hore ho amohela baeti ho fela ka linako tse ling. Tsebisa admin hore moamoheli oa emisa. Tsebisa mosebelisi le admin hore mosebelisi o koetsoe.

Ke rata php ho eona mme ke ngotse script.

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

Re boloka mongolo ona kae kapa kae mme re o bitsa eng kapa eng eo re e batlang, mme re eketsa mosebetsi oa cron ho o bitsa hang ka letsatsi. Tsohle di lokile.

Hona joale letsoalo la ka le hlaphohetsoe, lesela le khotsofetse, 'me ha kea ka ka ba le litšenyehelo tse ling.

Sohle se setseng ke ho tlatsa lintlha ho basebelisi ka letsatsi leo moamoheli a lefelletsoeng ka lona, ​​​​le lengolo-tsoibila la basebelisi moo ba ka romellang likhopotso ho basebelisi.

Kea thaba ha e thusa motho.

Source: www.habr.com

Eketsa ka tlhaloso