Pegatna otomatis pangguna dina ISPManager5 lite tanpa BILLmanager

dibikeun:

  1. Server VPS sareng lisénsi perpetual ispmanager lite 5
  2. 10-20 pamaké per server
  3. Google Calendar kalawan panginget biasa pikeun maranéhanana anu geus béak hosting
  4. Éra pikeun mayar naon waé, khususna nganggo langganan.

Tujuanana nyaéta pikeun ngaleungitkeun kalénder Google sareng panginget manual ka klien yén anjeunna kedah mayar kanggo hosting. Ngabebaskeun diri tina "hayu anjeunna damel sakedik deui, anjeunna bakal mayar pas", "kumaha waé henteu pikaresepeun pikeun mareuman", sareng mercayakeun ieu kana mesin anu teu aya jiwa.

Tangtosna, kuring mimiti Googled na searched, tapi teu manggihan solusi naon, eta sadayana pindang handap kanyataan yén anjeun kudu ngalanggan BILLmanager, tapi titik No.. 4 pohara penting sarta serius keur kuring, abdi moal meunang. miceun eta. Jeung kaputusan tétéla teu jadi hésé.

Janten naon anu urang laksanakeun?

Jieun folder users.addon, dina /usr/local/mgr5/etc/sql/ diréktori, dua file kosong:

  1. pay_date
  2. uwemail

Ieu bakal paréntah panel pikeun nyieun dina database
/usr/local/mgr5/etc/ispmgr.db
dina tabel pamaké aya dua widang anu saluyu dimana nilai-nilai ti panel admin bakal ditulis.

Jieun file anu disebut ispmgr_mod_pay_data.xml dina folder /usr/local/mgr5/etc/xml sareng eusina

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

Ieu masihan panel aturan supados widang urang dipintonkeun dina formulir éditan pamaké.

Reboot panel:

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

Kami meunang:

Pegatna otomatis pangguna dina ISPManager5 lite tanpa BILLmanager

Dina widang urang nulis nepi ka poé naon hosting kudu dianggo, sarta naon email pamaké, dimana ngirim panginget yén hosting bakal mungkas pas.

Ayeuna urang kedah nyiptakeun skrip anu bakal ngingetkeun pangguna yén hosting ditungtungan dina sababaraha interval. Béjakeun ka admin yén hosting parantos réngsé. Béjakeun ka pangguna sareng admin yén pangguna ditumpurkeun.

Abdi resep php sareng nyerat naskah.

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

Urang nyimpen naskah ieu di mana waé jeung nelepon deui naon urang hayang, jeung nambahkeun tugas cron pikeun nelepon sakali sapoé. Kabéh geus siap.

Ayeuna nurani kuring geus jelas, bangkong geus wareg, sarta kuring geus teu ngaluarkeun waragad tambahan.

Sadaya anu tetep nyaéta ngeusian data pangguna dina tanggal mana hosting dibayar, sareng email pangguna dimana ngirim panginget ka pangguna.

Bungah upami ngabantosan batur.

sumber: www.habr.com

Tambahkeun komentar