BILLmanager olmadan ISPManager5 lite-də istifadəçilərin avtomatik ayrılması

Verilənlər:

  1. Əbədi lisenziyalı VPS Server ispmanager lite 5
  2. Hər serverə 10-20 istifadəçi
  3. Hostinqi bitənlər üçün müntəzəm xatırlatmaları olan Google Təqvim
  4. Başqa bir şey üçün, xüsusən də abunə ilə ödəmək ayıbdır.

Məqsəd, Google təqvimindən və hostinq üçün ödəməli olduğu müştəriyə əl ilə xatırlatmalardan xilas olmaqdır. Özünüzü “bir az daha işləsin, tezliklə ödəyəcək”, “onu söndürmək nədənsə əlverişsizdir”dən azad olun və bunu ruhsuz maşına həvalə edin.

Təbii ki, əvvəlcə Google-da axtardım və axtardım, amma heç bir həll yolu tapmadım, hamısı BILLmanager-ə abunə olmaq lazım olduğuna görə qaynadı, amma 4-cü nöqtə mənim üçün çox vacib və ciddidir, almayacağam. ondan qurtul. Və qərarın o qədər də çətin olmadığı ortaya çıxdı.

Bəs biz nə edirik?

/usr/local/mgr5/etc/sql/ qovluğunda users.addon qovluğu yaradın, iki boş fayl:

  1. ödəniş_tarixi
  2. uwemail

Bu, panelə verilənlər bazasında yaratmağı əmr edəcək
/usr/local/mgr5/etc/ispmgr.db
istifadəçilər cədvəlində admin panelindən dəyərlərin yazılacağı iki uyğun sahə var.

/usr/local/mgr5/etc/xml qovluğunda məzmunu olan ispmgr_mod_pay_data.xml adlı fayl yaradın.

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

Bu, panelə bir qayda verir ki, bizim sahələr istifadəçinin redaktə formasında göstərilsin.

Paneli yenidən başladın:

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

Biz alırıq:

BILLmanager olmadan ISPManager5 lite-də istifadəçilərin avtomatik ayrılması

Sahələrdə hostinqin hansı günə qədər işləməli olduğunu və istifadəçinin hansı elektron poçtunu, hostinqin tezliklə bitəcəyinə dair xatırlatmaları hara göndərməyimizi yazırıq.

İndi istifadəçilərə hostinqin müəyyən fasilələrlə bitdiyini xatırladan skript yaratmalıyıq. Hostinqin bitdiyini adminə bildirin. İstifadəçiyə və adminə istifadəçinin deaktiv edildiyi barədə məlumat verin.

Mən php-ni bəyəndim və skript yazdım.

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

Biz bu skripti istənilən yerdə saxlayırıq və onu istədiyimiz kimi adlandırırıq və gündə bir dəfə zəng etmək üçün cron tapşırığı əlavə edirik. Hamısı hazırdır.

İndi vicdanım təmizdir, qurbağa razıdır, əlavə xərc çəkməmişəm.

Qalır ki, hostinqin hansı tarixdə ödənildiyi istifadəçilərdəki məlumatları və istifadəçilərə xatırlatmalar göndəriləcək istifadəçilərin elektron poçtunu doldurmaqdır.

Kiməsə kömək etsə şad olaram.

Mənbə: www.habr.com

Добавить комментарий