په ISPManager5 لایټ کې د BILLManager پرته د کاروونکو اتوماتیک قطع کول

ورکړل شوی:

  1. د VPS سرور د دوامداره جواز سره ispmanager lite 5
  2. په هر سرور کې 10-20 کاروونکي
  3. د ګوګل کیلنڈر د منظم یادداشتونو سره د هغو کسانو لپاره چې کوربه توب یې پای ته رسیدلی
  4. دا د شرم خبره ده چې د بل څه لپاره پیسې ورکړئ، په ځانګړې توګه د ګډون سره.

هدف دا دی چې پیرودونکي ته د ګوګل کیلنڈر او لارښود یادداشتونو څخه خلاص شي چې هغه د کوربه توب لپاره تادیه کولو ته اړتیا لري. خپل ځان له دې څخه خلاص کړئ چې "هغه ته یو څه نور کار وکړئ، هغه به ډیر ژر پیسې ورکړي"، "دا یو څه ناشونی دی چې دا بند کړئ"، او دا یو بې روح ماشین ته وسپارئ.

البته، ما لومړی ګوګل وکړ او پلټنه یې وکړه، مګر هیڅ حل یې ونه موند، دا ټول د دې حقیقت سره مخ شوي چې تاسو اړتیا لرئ د BILLmanager سره ګډون وکړئ، مګر څلورم ټکی زما لپاره خورا مهم او جدي دی، زه به یې ترلاسه نه کړم. له دې لرې او پریکړه دومره ستونزمنه نه وه.

نو موږ څه وکړو؟

یو فولډر user.addon جوړ کړئ، په /usr/local/mgr5/etc/sql/ ډایرکټر کې، دوه خالي فایلونه:

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

موږ دا سکریپټ هرچیرې خوندي کوو او هر هغه څه چې موږ یې غواړو غږ کوو، او په ورځ کې یو ځل د زنګ وهلو لپاره کرون دنده اضافه کوو. ټول چمتو دي.

اوس زما وجدان روښانه دی، ټاډ مطمین دی، او ما هیڅ اضافي لګښت نه دی اخیستی.

ټول هغه څه چې پاتې دي په کاروونکو کې د معلوماتو ډکول دي چې په کومه نیټه کوربه توب تادیه شوی و ، او د کاروونکو بریښنالیک چیرې چې کاروونکو ته یادونه لیږل کیږي.

خوشحاله که دا د یو چا سره مرسته وکړي.

سرچینه: www.habr.com

Add a comment