Datgysylltu defnyddwyr yn awtomatig yn ISPmanager5 lite heb BILLmanager

Wedi'i roi:

  1. Gweinydd VPS gyda thrwydded barhaus ispmanager lite 5
  2. 10-20 defnyddiwr fesul gweinydd
  3. Google Calendar gyda nodiadau atgoffa rheolaidd ar gyfer y rhai sydd wedi rhedeg allan o westeio
  4. Mae'n drueni talu am unrhyw beth arall, yn enwedig gyda thanysgrifiad.

Y nod yw cael gwared ar galendr Google a nodiadau atgoffa â llaw i'r cleient bod angen iddo dalu am westeio. Rhyddhewch eich hun rhag “gadewch iddo weithio ychydig mwy, bydd yn talu’n fuan”, “mae’n anghyfleus rywsut ei ddiffodd”, ac ymddiriedwch hyn i beiriant di-enaid.

Wrth gwrs, yr wyf yn gyntaf Googled a chwilio, ond nid oedd yn dod o hyd i unrhyw atebion, mae'r cyfan yn berwi i lawr at y ffaith bod angen i chi danysgrifio i BILLmanager, ond pwynt Rhif 4 yn bwysig iawn ac yn ddifrifol i mi, ni fyddaf yn cael gwared ohono. Ac nid oedd y penderfyniad mor anodd.

Felly beth ydyn ni'n ei wneud?

Creu ffolder users.addon, yn y cyfeiriadur /usr/local/mgr5/etc/sql/, dwy ffeil wag:

  1. dyddiad_talu
  2. uwemail

Bydd hyn yn gorchymyn i'r panel greu yn y gronfa ddata
/usr/local/mgr5/etc/ispmgr.db
yn y tabl defnyddwyr mae dau faes cyfatebol lle bydd y gwerthoedd o'r panel gweinyddol yn cael eu hysgrifennu.

Creu ffeil o'r enw ispmgr_mod_pay_data.xml yn y ffolder /usr/local/mgr5/etc/xml gyda'r cynnwys

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

Mae hyn yn rhoi rheol i'r panel fel bod ein meysydd yn cael eu harddangos ar ffurf olygu'r defnyddiwr.

Ailgychwyn y panel:

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

Rydym yn cael:

Datgysylltu defnyddwyr yn awtomatig yn ISPmanager5 lite heb BILLmanager

Yn y meysydd rydym yn ysgrifennu tan pa ddiwrnod y dylai'r gwesteiwr weithio, a pha e-bost y defnyddiwr, ble i anfon nodiadau atgoffa y bydd y gwesteiwr yn dod i ben yn fuan.

Nawr mae angen i ni greu sgript a fydd yn atgoffa defnyddwyr bod cynnal yn dod i ben ar rai adegau. Rhowch wybod i'r gweinyddwr bod y gwesteiwr yn dod i ben. Hysbysu'r defnyddiwr a'r gweinyddwr bod y defnyddiwr yn anabl.

Rwy'n hoffi php arno ac ysgrifennodd sgript.

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

Rydyn ni'n cadw'r sgript hon yn unrhyw le ac yn ei alw beth bynnag rydyn ni ei eisiau, ac yn ychwanegu tasg cron i'w alw unwaith y dydd. Mae'r cyfan yn barod.

Nawr bod fy nghydwybod yn glir, mae'r llyffant yn fodlon, ac nid wyf wedi mynd i unrhyw gostau ychwanegol.

Y cyfan sydd ar ôl yw llenwi'r data yn y defnyddwyr ar ba ddyddiad y talwyd am y gwesteiwr, ac e-bost y defnyddwyr lle i anfon nodiadau atgoffa at ddefnyddwyr.

Falch os yw'n helpu rhywun.

Ffynhonnell: hab.com

Ychwanegu sylw