ISPManager5 lite дээрх хэрэглэгчдийг BILLmanagerгүйгээр автоматаар таслах

Үүнд:

  1. ispmanager lite 5 байнгын лицензтэй VPS сервер
  2. Нэг серверт 10-20 хэрэглэгч
  3. Хостинг дуусч байгаа хүмүүст зориулсан байнгын сануулагчтай Google Хуанли
  4. Бусад зүйлд, ялангуяа захиалгаар төлбөр төлөх нь ичмээр юм.

Зорилго нь Google-ийн календарь болон үйлчлүүлэгчид байршуулах төлбөрийг төлөх шаардлагатай гарын авлагын сануулагчаас салах явдал юм. "Түүнд бага зэрэг ажилла, тэр удахгүй төлнө", "унтраах нь эвгүй байна" гэх мэт байдлаас өөрийгөө чөлөөлж, үүнийг сүнсгүй машинд даатга.

Мэдээжийн хэрэг, би эхлээд Google-ээр хайж, хайсан боловч ямар ч шийдэл олсонгүй, энэ бүхэн та BILLmanager-д бүртгүүлэх хэрэгтэй гэсэн үг юм, гэхдээ 4-р цэг нь миний хувьд маш чухал бөгөөд ноцтой юм, би авахгүй. түүнээс сал. Тэгээд шийдвэр нь тийм ч хэцүү биш болсон.

Тэгэхээр бид юу хийх вэ?

/usr/local/mgr5/etc/sql/ директорт users.addon хавтас үүсгэнэ үү, хоёр хоосон файл:

  1. төлөх_огноо
  2. uwemail

Энэ нь мэдээллийн санд үүсгэх самбарт тушаал өгнө
/usr/local/mgr5/etc/ispmgr.db
хэрэглэгчийн хүснэгтэд админ самбараас утгуудыг бичих хоёр харгалзах талбар байна.

/usr/local/mgr5/etc/xml хавтсанд ispmgr_mod_pay_data.xml нэртэй файл үүсгэнэ үү.

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

Энэ нь самбарт дүрмийг өгдөг бөгөөд ингэснээр бидний талбарууд хэрэглэгчийн засварлах хэлбэрээр харагдана.

Самбарыг дахин ачаална уу:

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

Бид:

ISPManager5 lite дээрх хэрэглэгчдийг BILLmanagerгүйгээр автоматаар таслах

Талбаруудад бид хостинг хэдэн өдөр ажиллах, хэрэглэгчийн ямар имэйл хаяг, хостинг удахгүй дуусах тухай сануулгыг хааш нь илгээх талаар бичдэг.

Одоо бид хэрэглэгчдэд хостинг тодорхой интервалаар дуусдаг гэдгийг сануулах скрипт үүсгэх хэрэгтэй. Хостинг дуусч байгааг админдаа мэдэгдээрэй. Хэрэглэгч идэвхгүй болсон тухай хэрэглэгч болон админд мэдэгдэнэ үү.

Би үүн дээр php-д дуртай бөгөөд скрипт бичсэн.

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

Бид энэ скриптийг хаана ч хадгалж, хүссэнээрээ дуудаж, өдөрт нэг удаа дуудах cron даалгавар нэмдэг. Бүгд бэлэн.

Одоо миний мөс цэлмэг, бах сэтгэл хангалуун, ямар ч нэмэлт зардал гаргаагүй.

Хэрэглэгчдэд байршуулах төлбөрийг аль өдөр төлсөн мэдээлэл, хэрэглэгчдэд сануулга илгээх цахим шууданг бөглөх л үлдлээ.

Хэн нэгэнд тусалсан бол баяртай.

Эх сурвалж: www.habr.com

сэтгэгдэл нэмэх