BILLmanager کان سواءِ ISPManager5 lite ۾ صارفين جو پاڻمرادو ڪنيڪشن

ڏنو ويو:

  1. وي پي ايس سرور دائمي لائسنس سان گڏ پي مئنيجر لائٽ 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 پسند ڪيو ۽ هڪ اسڪرپٽ لکيو.

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

تبصرو شامل ڪريو