Sjálfvirk aftenging notenda í ISPManager5 lite án BILLmanager

Gefið:

  1. VPS Server með ævarandi leyfi ispmanager lite 5
  2. 10-20 notendur á hvern netþjón
  3. Google dagatal með reglulegum áminningum fyrir þá sem eru uppiskroppa með hýsingu
  4. Það er synd að borga fyrir eitthvað annað, sérstaklega með áskrift.

Markmiðið er að losna við Google dagatal og handvirkar áminningar til viðskiptavinarins um að hann þurfi að borga fyrir hýsingu. Losaðu þig við "leyfðu honum að vinna aðeins meira, hann borgar bráðum", "það er einhvern veginn óþægilegt að slökkva á því", og feldu þetta sálarlausri vél.

Ég gúglaði að sjálfsögðu fyrst og leitaði en fann engar lausnir, allt stefndi í það að þú þarft að gerast áskrifandi að BILLmanager en punktur nr 4 er mjög mikilvægur og alvarlegur fyrir mig, ég fæ ekki losna við það. Og ákvörðunin reyndist ekki svo erfið.

Svo hvað gerum við?

Búðu til möppu users.addon, í /usr/local/mgr5/etc/sql/ möppunni, tvær tómar skrár:

  1. greiðsludagsetning
  2. uwmail

Þetta mun skipa spjaldinu að búa til í gagnagrunninum
/usr/local/mgr5/etc/ispmgr.db
í notendatöflunni eru tveir samsvarandi reitir þar sem gildin frá stjórnborðinu verða skrifuð.

Búðu til skrá sem heitir ispmgr_mod_pay_data.xml í /usr/local/mgr5/etc/xml möppunni með innihaldinu

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

Þetta gefur spjaldinu reglu þannig að reitirnir okkar birtast á breytingaformi notandans.

Endurræstu spjaldið:

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

Við fáum:

Sjálfvirk aftenging notenda í ISPManager5 lite án BILLmanager

Í reitina skrifum við til hvaða dags hýsingin á að virka og hvaða netfang notandans, hvert á að senda áminningar um að hýsingin ljúki fljótlega.

Nú þurfum við að búa til handrit sem mun minna notendur á að hýsingu lýkur með einhverju millibili. Láttu stjórnanda vita að hýsingu sé að ljúka. Láttu notanda og stjórnanda vita að notandinn sé óvirkur.

Mér líkar php á það og skrifaði handrit.

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

Við vistum þetta handrit hvar sem er og köllum það hvað sem við viljum og bætum við cron verkefni til að kalla það einu sinni á dag. Allt er tilbúið.

Nú er samviska mín hrein, tófan sátt og ég hef ekki orðið fyrir neinum aukakostnaði.

Það eina sem eftir er er að fylla út gögnin í notendum á hvaða degi hýsingu var greitt fyrir og tölvupóst notenda hvert á að senda áminningar til notenda.

Gott ef það hjálpar einhverjum.

Heimild: www.habr.com

Bæta við athugasemd