Ավտոմատ անջատեք օգտատերերին ISPmanager5 lite-ում առանց BILLmanager-ի

Տրված է.

  1. VPS սերվեր՝ ispmanager lite 5 մշտական ​​լիցենզիայով
  2. 10-20 օգտատեր մեկ սերվերի համար
  3. Google Օրացույց՝ կանոնավոր հիշեցումներով նրանց համար, ովքեր ժամանակ չունեն հոսթինգ
  4. Այլ բանի համար վճարելը, հատկապես բաժանորդագրության համար, խեղդվող դոդոշ է։

Նպատակն է ազատվել Google Calendar-ից և հաճախորդին ուղղված ձեռքով հիշեցումներից, որ նա պետք է վճարի հոսթինգի համար։ Ազատվել «թող մի քիչ էլ աշխատի, շուտով կվճարի», «ինչ-որ կերպ անհարմար է այն անջատելը» կարգախոսներից և վստահել դա անհոգի մեքենային։

Իհարկե, սկզբում Google-ում որոնեցի, բայց լուծումներ չգտա։ Ամեն ինչ հանգեցրեց նրան, որ ես պետք է բաժանորդագրվեի BILLmanager-ին, բայց #4 կետը շատ կարևոր և լուրջ է ինձ համար, ես չեմ հրաժարվի դրանից։ Եվ լուծումը այդքան էլ դժվար չստացվեց։

Ուրեմն, ի՞նչ անենք։

Ստեղծեք users.addon թղթապանակը, /usr/local/mgr5/etc/sql/ գրացուցակում ստեղծեք երկու դատարկ ֆայլեր՝

  1. վճարման_ամսաթիվ
  2. uwemail

Սա վահանակին կհրամայի ստեղծել տվյալների բազայում
/usr/local/mgr5/etc/ispmgr.db
Օգտագործողների աղյուսակում կան երկու համապատասխան դաշտեր, որտեղ գրվելու են կառավարման վահանակի արժեքները:

Ստեղծեք ispmgr_mod_pay_data.xml ֆայլը /usr/local/mgr5/etc/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 = "admin@gmail.com"; // 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 task՝ այն օրը մեկ անգամ կանչելու համար։ Ամեն ինչ պատրաստ է։

Հիմա իմ խիղճը հանգիստ է, իմ դոդոշը գոհ է, և ես որևէ լրացուցիչ ծախս չեմ կրել։

Մնում է լրացնել օգտատերերի տվյալները, թե մինչև որ ամսաթիվը վճարվել է հոսթինգի համար, և օգտատերերի էլ. փոստը, թե որտեղ ուղարկել հիշեցումներ օգտատերերին։

Ես ուրախ կլինեմ, եթե դա ինչ-որ մեկին օգնի։

Source: www.habr.com

Գնեք հուսալի հոստինգ DDoS պաշտպանությամբ կայքերի, VPS VDS սերվերների համար 🔥 Գնեք հուսալի կայքերի հոսթինգ՝ DDoS պաշտպանությամբ, VPS VDS սերվերներով | ProHoster