Dì-cheangal fèin-ghluasadach de luchd-cleachdaidh ann an ISPManager5 lite às aonais BILLmanager

Leis:

  1. Frithealaiche VPS le cead sìorraidh ispmanager lite 5
  2. 10-20 luchd-cleachdaidh gach frithealaiche
  3. Google Calendar le cuimhneachain cunbhalach dhaibhsan a tha air ruith a-mach à aoigheachd
  4. Tha e tàmailteach pàigheadh ​​​​airson rud sam bith eile, gu sònraichte le ballrachd.

Is e an amas faighinn cuidhteas mìosachan Google agus cuimhneachain làimhe don neach-dèiligidh gum feum e pàigheadh ​​​​airson aoigheachd. Saor thu fhèin bho “leig leis obair beagan a bharrachd, pàighidh e a dh’ aithghearr”, “tha e dòigh air choireigin mì-ghoireasach a thionndadh dheth”, agus cuir seo an urra ri inneal gun anam.

Gu dearbh, rinn mi Googled agus rannsaich mi an toiseach, ach cha do lorg mi fuasglaidhean sam bith, chaidh a h-uile càil sìos leis gu feum thu fo-sgrìobhadh gu BILLmanager, ach tha puing Àir. 4 glè chudromach agus dona dhòmhsa, chan fhaigh mi cuidhteas e. Agus thionndaidh e a-mach nach robh an co-dhùnadh cho duilich.

Mar sin dè nì sinn?

Cruthaich pasgan users.addon, anns an /usr/local/mgr5/etc/sql/ directory, dà fhaidhle falamh:

  1. ceann-latha pàighidh
  2. uwemail

Bheir seo àithne don phannal a chruthachadh san stòr-dàta
/usr/local/mgr5/etc/ispmgr.db
ann an clàr an luchd-cleachdaidh tha dà raon co-fhreagarrach far an tèid na luachan bhon phannal rianachd a sgrìobhadh.

Cruthaich faidhle leis an ainm ispmgr_mod_pay_data.xml anns a’ phasgan /usr/local/mgr5/etc/xml leis na th’ ann

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

Bheir seo riaghailt don phannal gus am bi na raointean againn air an taisbeanadh ann am foirm deasachaidh an neach-cleachdaidh.

Ath-thòisich am pannal:

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

Gheibh sinn:

Dì-cheangal fèin-ghluasadach de luchd-cleachdaidh ann an ISPManager5 lite às aonais BILLmanager

Anns na raointean bidh sinn a’ sgrìobhadh gu dè an latha a bu chòir don aoigheachd obrachadh, agus dè am post-d bhon neach-cleachdaidh, far an cuir thu cuimhneachain gun tig an aoigheachd gu crìch a dh’ aithghearr.

A-nis feumaidh sinn sgriobt a chruthachadh a chuireas an cuimhne luchd-cleachdaidh gu bheil aoigheachd a’ tighinn gu crìch aig amannan. Cuir fios chun rianaire gu bheil aoigheachd a’ tighinn gu crìch. Cuir fios chun neach-cleachdaidh agus rianaire gu bheil an cleachdaiche ciorramach.

Is toil leam php air agus sgrìobh mi sgriobt.

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

Sàbhailidh sinn an sgriobt seo an àite sam bith agus canaidh sinn rud sam bith a tha sinn ag iarraidh, agus cuiridh sinn gnìomh cron ris airson a ghairm uair san latha. Tha a h-uile dad deiseil.

A-nis tha mo chogais soilleir, tha am mial-mhàgach riaraichte, agus chan eil mi air cosgaisean a bharrachd a tharraing.

Chan eil air fhàgail ach an dàta a lìonadh a-steach don luchd-cleachdaidh air a’ cheann-latha air an deach an aoigheachd a phàigheadh, agus post-d an luchd-cleachdaidh far an cuir iad cuimhneachain gu luchd-cleachdaidh.

Toilichte ma chuidicheas e cuideigin.

Source: www.habr.com

Cuir beachd ann