Tsis siv neeg txiav tawm ntawm cov neeg siv hauv ISPManager5 lite yam tsis muaj BILLmanager

Muab:

  1. VPS Server nrog daim ntawv tso cai perpetual ispmanager lite 5
  2. 10-20 cov neeg siv rau ib lub server
  3. Google Calendar nrog kev ceeb toom tsis tu ncua rau cov neeg uas tau khiav tawm ntawm hosting
  4. Nws yog qhov txaj muag them rau lwm yam, tshwj xeeb tshaj yog nrog kev tso npe.

Lub hom phiaj yog kom tshem tawm Google daim ntawv qhia hnub thiab phau ntawv ceeb toom rau tus neeg siv khoom uas nws xav tau them rau hosting. Tso koj tus kheej los ntawm "cia nws ua haujlwm me ntsis ntxiv, nws yuav them sai sai", "nws yog qhov tsis yooj yim los tua nws", thiab tso siab rau qhov no rau lub tshuab tsis muaj dab tsi.

Tau kawg, kuv thawj zaug Googled thiab tshawb nrhiav, tab sis tsis pom cov kev daws teeb meem, nws tag nrho cov boiled mus rau qhov tseeb tias koj yuav tsum tau sau npe rau BILLmanager, tab sis taw tes No 4 yog ib qho tseem ceeb heev thiab hnyav rau kuv, kuv yuav tsis tau txais. tshem tawm ntawm nws. Thiab qhov kev txiav txim siab tau muab los ua tsis nyuaj.

Yog li peb ua li cas?

Tsim cov folder users.addon, hauv /usr/local/mgr5/etc/sql/ directory, ob cov ntaub ntawv khoob:

  1. pay_date
  2. uwemail

Qhov no yuav hais kom lub vaj huam sib luag los tsim hauv cov ntaub ntawv
/usr/local/mgr5/etc/ispmgr.db
nyob rau hauv cov neeg siv cov lus muaj ob lub teb sib txuas uas cov txiaj ntsig los ntawm admin vaj huam sib luag yuav raug sau.

Tsim cov ntaub ntawv hu ua ispmgr_mod_pay_data.xml hauv /usr/local/mgr5/etc/xml folder nrog cov ntsiab lus

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

Qhov no muab lub vaj huam sib luag txoj cai kom peb cov teb tau tshwm sim hauv tus neeg siv cov ntawv hloov kho.

Reboot lub vaj huam sib luag:

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

Peb tau txais:

Tsis siv neeg txiav tawm ntawm cov neeg siv hauv ISPManager5 lite yam tsis muaj BILLmanager

Hauv cov teb peb sau txog hnub twg lub hosting yuav tsum ua hauj lwm, thiab dab tsi email ntawm tus neeg siv, qhov twg yuav xa cov lus ceeb toom tias hosting yuav xaus sai sai no.

Tam sim no peb yuav tsum tsim ib tsab ntawv uas yuav ceeb toom cov neeg siv tias hosting xaus ntawm qee lub sijhawm. Qhia rau admin tias hosting xaus. Qhia rau tus neeg siv thiab tus thawj tswj xyuas tias tus neeg siv raug kaw.

Kuv nyiam php ntawm nws thiab sau ib tsab ntawv.

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

Peb khaws cov ntawv no nyob qhov twg thiab hu nws txhua yam peb xav tau, thiab ntxiv cov haujlwm cron hu nws ib hnub ib zaug. Txhua yam yog npaj txhij.

Tam sim no kuv lub siab yog qhov tseeb, tus nquab tau txaus siab, thiab kuv tsis tau muaj nqi ntxiv.

Txhua yam uas tseem tshuav yog sau cov ntaub ntawv hauv cov neeg siv hnub twg lub hosting tau them rau, thiab email ntawm cov neeg siv qhov twg xa cov lus ceeb toom rau cov neeg siv.

Zoo siab yog nws pab tau ib tug neeg.

Tau qhov twg los: www.hab.com

Ntxiv ib saib