Automatisch afsluiten van gebruikers in ISPManager5 lite zonder BILLmanager

Gegeven:

  1. VPS Server met een levenslange licentie van ispmanager lite 5
  2. 10-20 gebruikers op de server
  3. Google Calendar met regelmatige herinneringen voor wie is afgelopen hosting
  4. Het is vervelend om voor iets anders te betalen, vooral voor een abonnement

Het doel is om van Google Calendar en handmatige herinneringen aan de klant dat hij het hosting moet betalen af te komen. Zich bevrijden van "laat hem nog even werken, hij betaalt snel" en "het is een beetje ongemakkelijk om af te sluiten", en dit overlaten aan een onpersoonlijke machine.

Natuurlijk heb ik eerst gegoogeld en gezocht, maar vond geen oplossingen, alles kwam neer op het nemen van een BILLmanager-abonnement, maar punt ā„–4 is voor mij erg belangrijk en serieus, dat wil ik niet opgeven. En de oplossing bleek helemaal niet zo moeilijk te zijn.

Dus, wat doen we.

We maken een map users.addon aan in de directory /usr/local/mgr5/etc/sql/, met twee lege bestanden:

  1. pay_date
  2. uwemail

Dit geeft de opdracht aan het paneel om in de database
/usr/local/mgr5/etc/ispmgr.db
in de tabel users twee overeenkomstige velden aan te maken waarin waarden van het adminpaneel zullen worden geschreven.

We maken het bestand ispmgr_mod_pay_data.xml aan in de map /usr/local/mgr5/etc/xml met de inhoud

Betaald tot
			Gebruikers e-mail
		
	
	
		
			Paid before
			User email

Dit geeft de regel aan het paneel zodat onze velden worden weergegeven in het formulier voor het bewerken van de gebruiker.

We starten het paneel opnieuw op:

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

We krijgen:

Automatisch afsluiten van gebruikers in ISPManager5 lite zonder BILLmanager

In de velden schrijven we tot welke datum de hosting moet werken en welke e-mail van de gebruiker, waar de herinneringen naartoe gestuurd moeten worden dat de hosting binnenkort afloopt.

Nu moeten we een script maken dat gebruikers eraan herinnert dat de hosting afloopt met een bepaalde frequentie. De admin informeren dat de hosting afloopt. De gebruiker en admin informeren dat de gebruiker is afgesloten.

Ik ben bekend met php, dus heb ik een script geschreven.

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 hosting expires in '.$days_left.' days', "Message to the user about how many days are left");
			}
		}
		if( $days_left == 3 ) {
			mail($adminemail, 'ISPMANAGER USER '.$user['name'], $user['name'] . " Hosting will expire in ".$days_left." days");
		}
		if($days_left <= 0){
			mail($adminemail, 'ISPMANAGER USER '.$user['name'].' DISABLED', $user['name'].' Disabled');
			exec("/usr/local/mgr5/sbin/mgrctl -m ispmgr user.suspend elid=".$user["name"]);
			if( $user['uwemail'] != "" ) {
				mail($user['uwemail'], 'ISPMANAGER hosting disabled', 'Message for the user that hosting has expired'); 
			}
		}
		// optionally, you can also write a small IF to delete data after some time, but I don’t need that
}

Sla dit script op waar je maar wilt en geef het een naam, voeg het toe aan een cron-taak om het dagelijks aan te roepen. Alles is klaar.

Nu is mijn geweten schoon, en mijn zorgen zijn weg, ik heb geen extra kosten gehad.

Vul nu de betalingsdata in voor de gebruikers, evenals de e-mailadressen waar de herinneringen naartoe gestuurd moeten worden.

Ik hoop dat het iemand helpt.

Bron: habr.com

Koop betrouwbare webhosting met bescherming tegen DDoS, VPS VDS servers šŸ”„ Koop betrouwbare webhosting met bescherming tegen DDoS, VPS VDS servers | ProHoster