Automatische Abmeldung von Benutzern in ISPManager5 lite ohne BILLmanager

Gegeben:

  1. VPS-Server mit ewiger Lizenz fĂŒr ispmanager lite 5
  2. 10-20 Benutzer auf dem Server
  3. Google Kalender mit regelmĂ€ĂŸigen Erinnerungen fĂŒr abgelaufene Nutzer Hosting
  4. Die Qual, fĂŒr irgendetwas zu zahlen, erst recht nicht fĂŒr ein Abonnement

Ziel ist es, den Google Kalender und manuelle Erinnerungen an die Kunden, dass sie das Hosting bezahlen mĂŒssen, loszuwerden. Sich von dem Gedanken zu befreien: 'Lass ihn noch etwas arbeiten, er wird bald bezahlen' oder 'Es ist unangenehm, ihn abzuschalten', und das Ganze einer maschinellen Lösung zu ĂŒberlassen.

NatĂŒrlich habe ich zuerst gegoogelt, aber keine Lösungen gefunden. Alles lief darauf hinaus, dass ich ein Abonnement fĂŒr BILLmanager nehmen mĂŒsste, aber Punkt №4 ist mir sehr wichtig und ernst, den lasse ich nicht los. Und die Lösung stellte sich als gar nicht so kompliziert heraus.

Also, was machen wir.

Wir erstellen einen Ordner users.addon im Verzeichnis /usr/local/mgr5/etc/sql/, mit zwei leeren Dateien:

  1. pay_date
  2. uwemail

Das wird dem Panel den Befehl geben, in der Datenbank
/usr/local/mgr5/etc/ispmgr.db
in der Tabelle users zwei entsprechende Felder zu erstellen, in die die Werte von der Admin-OberflÀche geschrieben werden.

Wir erstellen die Datei ispmgr_mod_pay_data.xml im Ordner /usr/local/mgr5/etc/xml mit dem Inhalt

Bezahlt bis
			Benutzer-E-Mail
		
	
	
		
			Paid before
			User email

Das gibt dem Panel die Regel, dass unsere Felder im Benutzerbearbeitungsformular angezeigt werden.

Wir starten das Panel neu:

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

Wir erhalten:

Automatische Abmeldung von Benutzern in ISPManager5 lite ohne BILLmanager

In die Felder tragen wir ein, bis zu welchem Datum das Hosting funktionieren soll und welche E-Mail des Benutzers, an die Erinnerungen ĂŒber die bald ablaufende Hosting-Lizenz geschickt werden sollen.

Jetzt mĂŒssen wir ein Skript erstellen, das die Benutzer regelmĂ€ĂŸig darĂŒber informiert, dass das Hosting ablĂ€uft. Den Admin benachrichtigen, dass das Hosting ablĂ€uft. Den Benutzer und den Admin benachrichtigen, dass der Benutzer deaktiviert wurde.

Ich arbeite gerne mit PHP und habe folgendes Skript geschrieben.

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 lĂ€uft in '.$days_left.' Tagen ab', "Text fĂŒr den Benutzer darĂŒber, dass nur noch so viele Tage verbleiben");
			}
		}
		if ($days_left == 3) {
			mail($adminemail, 'ISPMANAGER USER '.$user['name'], $user['name'] . " Hosting lÀuft in ".$days_left." Tagen ab");
		}
		if ($days_left <= 0) {
			mail($adminemail, 'ISPMANAGER USER '.$user['name'].' DEAKTIVIERT', $user['name'].' wurde deaktiviert');
			exec("/usr/local/mgr5/sbin/mgrctl -m ispmgr user.suspend elid=".$user["name"]);
			if ($user['uwemail'] != "") {
				mail($user['uwemail'], 'ISPMANAGER Hosting deaktiviert', 'Text fĂŒr den Benutzer, dass das Hosting abgelaufen ist');
			}
		}
		// Falls gewĂŒnscht kann man noch ein kleines IF hinzufĂŒgen, um die Daten nach einiger Zeit zu löschen, aber das benötige ich nicht
}

Dieses Skript speichern wir irgendwo und nennen es, wie wir wollen, und fĂŒgen es als Cron-Job hinzu, um es einmal tĂ€glich auszufĂŒhren. Alles ist bereit.

Jetzt ist das Gewissen rein, die Qual ist zufrieden, es entstehen keine zusÀtzlichen Kosten.

Jetzt bleibt nur noch, die Daten bei den Benutzern auszufĂŒllen, bis zu welchem Datum das Hosting bezahlt ist, und die E-Mail-Adressen der Benutzer, an die die Erinnerungen gesendet werden sollen.

Ich hoffe, es hilft jemandem.

Quelle: habr.com

Erwerben Sie zuverlĂ€ssiges Hosting fĂŒr Websites mit DDoS-Schutz, VPS VDS-Server đŸ”„ Kaufen Sie zuverlĂ€ssiges Hosting fĂŒr Websites mit DDoS-Schutz, VPS VDS-Server | ProHoster