Automatisk frånkoppling av användare i ISPManager5 lite utan BILLmanager

Given:

  1. VPS-server med evig licens ispmanager lite 5
  2. 10-20 användare per server
  3. Google Kalender med regelbundna påminnelser för dem som har slut på värd
  4. Det är synd att betala för något annat, speciellt med ett abonnemang.

Målet är att bli av med Google kalender och manuella påminnelser till kunden om att han måste betala för hosting. Befria dig från "låt honom jobba lite mer, han betalar snart", "det är på något sätt obekvämt att stänga av det", och anförtro detta till en själlös maskin.

Självklart googlade jag först och sökte men hittade inga lösningar, allt bottnade i att man måste prenumerera på BILLmanager men punkt nr 4 är väldigt viktig och seriös för mig kommer jag inte få bli av med det. Och beslutet visade sig inte vara så svårt.

Så vad gör vi?

Skapa en mapp users.addon, i katalogen /usr/local/mgr5/etc/sql/, två tomma filer:

  1. pay_date
  2. din e-post

Detta kommer att beordra panelen att skapa i databasen
/usr/local/mgr5/etc/ispmgr.db
i användartabellen finns det två motsvarande fält där värdena från adminpanelen kommer att skrivas.

Skapa en fil som heter ispmgr_mod_pay_data.xml i mappen /usr/local/mgr5/etc/xml med innehållet

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

Detta ger panelen en regel så att våra fält visas i användarens redigeringsformulär.

Starta om panelen:

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

Vi får:

Automatisk frånkoppling av användare i ISPManager5 lite utan BILLmanager

I fälten skriver vi fram till vilken dag hostingen ska fungera, och vilken e-post till användaren, vart man ska skicka påminnelser om att hostingen snart upphör.

Nu måste vi skapa ett skript som påminner användarna om att värdskapet slutar med vissa intervall. Meddela administratören att värdskapet upphör. Meddela användaren och administratören att användaren är inaktiverad.

Jag gillar php på det och skrev ett manus.

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

Vi sparar det här skriptet var som helst och kallar det vad vi vill, och lägger till en cron-uppgift för att kalla det en gång om dagen. Allt är klart.

Nu är mitt samvete rent, paddan är nöjd och jag har inte haft några extra kostnader.

Allt som återstår är att fylla i uppgifterna i användarna vilket datum värdskapet betalades för, och e-postmeddelandet till användarna vart de ska skicka påminnelser till användarna.

Kul om det hjälper någon.

Källa: will.com

Lägg en kommentar