Otometi le motusia o tagata fa'aoga ile ISPManager5 lite e aunoa ma le BILLmanager

Tuuina atu:

  1. VPS Server ma laisene fa'avavau ispmanager lite 5
  2. 10-20 tagata fa'aoga ile server
  3. Google Kalena fa'atasi ai ma fa'amanatu masani mo i latou ua uma le talimalo
  4. O se mea e maasiasi ai le totogiina o se isi mea, aemaise lava i se saofaga.

O le fa'amoemoe o le fa'ate'aina lea o le Google calendar ma tusi fa'amanatu i le kalani e mana'omia ona ia totogi mo le talimalo. Faʻasaʻoloto oe lava mai le "tuu atu ia te ia e galue teisi, o le a vave ona totogi", "e le o se mea e faigofie ona tape", ma tuʻuina atu lenei mea i se masini e leai se agaga.

O le mea moni, na ou muamua Google ma suʻesuʻe, ae leʻi maua ni fofo, na faʻapipiʻi uma i lalo i le mea moni e tatau ona e lesitala i le BILLmanager, ae o le numera Numera 4 e taua tele ma ogaoga mo aʻu, ou te le mauaina. aveese. Ma o le faaiuga na iu ina le faigata tele.

O le a la le mea tatou te faia?

Fausia se faila users.addon, i le /usr/local/mgr5/etc/sql/ directory, lua faila gaogao:

  1. aso_totogi
  2. uwemail

O le a fa'atonuina le laulau e fai i totonu o fa'amaumauga
/usr/local/mgr5/etc/ispmgr.db
i le laulau a tagata faʻaoga e lua faʻatatau tutusa lea o le a tusia ai tulaga taua mai le admin panel.

Fausia se faila e taʻua o le ispmgr_mod_pay_data.xml i le /usr/local/mgr5/etc/xml folder ma mea o loʻo i totonu.

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

Ole mea lea e tu'uina atu ai i le laulau se tulafono ina ia fa'aalia a tatou fanua ile fomu fa'atonutonu a le tagata fa'aoga.

Toe fa'afou le laulau:

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

Matou te maua:

Otometi le motusia o tagata fa'aoga ile ISPManager5 lite e aunoa ma le BILLmanager

I totonu o fanua matou te tusi ai seia oʻo i le aso e tatau ona galue ai le talimalo, ma o le a le imeli a le tagata faʻaoga, o fea e lafo ai faʻamanatuga o le a maeʻa vave le talimalo.

Ole taimi nei e manaʻomia le fatuina o se tusitusiga e faʻamanatu ai i tagata faʻaoga o le talimalo e muta i nisi taimi. Fa'ailoa i le pule o lo'o fa'amutaina le talimalo. Fa'ailoa le tagata fa'aoga ma le fa'atonu e fa'aletonu le tagata fa'aoga.

Ou te fiafia i le php i luga ma tusia se tala.

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

Matou te teuina lenei tusitusiga i soʻo se mea ma faʻaigoaina soʻo se mea matou te mananaʻo ai, ma faʻaopoopo i ai se galuega cron e valaau tasi i le aso. Ua sauni mea uma.

O lea la ua mama lo'u lotofuatiaifo, ua faamalieina le to'a, ma ou te le'i faia ni tau faaopoopo.

Pau lava le mea o loʻo totoe o le faʻatumu lea o faʻamatalaga i tagata faʻaoga i le aso na totogi ai le talimalo, ma le imeli a tagata faʻaoga e lafo ai faʻamanatuga i tagata faʻaoga.

Fiafia pe a fesoasoani i se tasi.

puna: www.habr.com

Faaopoopo i ai se faamatalaga