BILLmanager کے بغیر ISPManager5 lite میں صارفین کا خودکار رابطہ منقطع

دیئے گئے:

  1. مستقل لائسنس کے ساتھ VPS سرور ispmanager lite 5
  2. فی سرور 10-20 صارفین
  3. گوگل کیلنڈر ان لوگوں کے لیے باقاعدہ یاد دہانیوں کے ساتھ جن کی میزبانی ختم ہو چکی ہے۔
  4. کسی اور چیز کی ادائیگی کرنا شرم کی بات ہے، خاص کر سبسکرپشن کے ساتھ۔

مقصد کلائنٹ کو گوگل کیلنڈر اور دستی یاد دہانیوں سے چھٹکارا حاصل کرنا ہے جو اسے ہوسٹنگ کے لئے ادائیگی کرنے کی ضرورت ہے۔ اپنے آپ کو "اسے تھوڑا سا اور کام کرنے دو، وہ جلد ہی ادائیگی کر دے گا"، "اسے بند کرنا کسی نہ کسی طرح تکلیف دہ ہے"، اور اسے ایک بے روح مشین کے سپرد کریں۔

بلاشبہ، میں نے پہلے گوگل کیا اور تلاش کیا، لیکن کوئی حل نہیں ملا، یہ سب اس حقیقت پر ابل پڑا کہ آپ کو BILLmanager کو سبسکرائب کرنے کی ضرورت ہے، لیکن پوائنٹ نمبر 4 میرے لیے بہت اہم اور سنجیدہ ہے، مجھے نہیں ملے گا۔ اس سے چھٹکارا. اور فیصلہ اتنا مشکل نہیں نکلا۔

تو ہم کیا کریں؟

/usr/local/mgr5/etc/sql/ ڈائرکٹری میں، دو خالی فائلوں میں user.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

ہم حاصل کرتے ہیں:

BILLmanager کے بغیر ISPManager5 lite میں صارفین کا خودکار رابطہ منقطع

فیلڈز میں ہم لکھتے ہیں کہ ہوسٹنگ کو کس دن کام کرنا چاہیے، اور صارف کا کون سا ای میل، کہاں یاد دہانیاں بھیجیں کہ ہوسٹنگ جلد ہی ختم ہو جائے گی۔

اب ہمیں ایک اسکرپٹ بنانے کی ضرورت ہے جو صارفین کو یاد دلائے کہ ہوسٹنگ کچھ وقفوں پر ختم ہوتی ہے۔ منتظم کو مطلع کریں کہ ہوسٹنگ ختم ہو رہی ہے۔ صارف اور منتظم کو مطلع کریں کہ صارف غیر فعال ہے۔

مجھے اس پر پی ایچ پی پسند ہے اور اسکرپٹ لکھا۔

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

ہم اس اسکرپٹ کو کہیں بھی محفوظ کرتے ہیں اور اسے جو چاہیں کال کرتے ہیں، اور اسے دن میں ایک بار کال کرنے کے لیے کرون ٹاسک شامل کرتے ہیں۔ سب تیار ہے۔

اب میرا ضمیر صاف ہے، میںڑک مطمئن ہے، اور میں نے کوئی اضافی خرچ نہیں اٹھایا۔

باقی صرف صارفین کے ڈیٹا کو بھرنا ہے جس تاریخ کو ہوسٹنگ کی ادائیگی کی گئی تھی، اور صارفین کی ای میل جہاں صارفین کو یاد دہانیاں بھیجنی ہیں۔

خوشی ہے اگر یہ کسی کی مدد کرتا ہے۔

ماخذ: www.habr.com

نیا تبصرہ شامل کریں