Kuyimitsa ogwiritsa ntchito mu ISPManager5 lite popanda BILLmanager

Kupatsidwa:

  1. VPS Server yokhala ndi chilolezo chosatha ispmanager lite 5
  2. Ogwiritsa 10-20 pa seva
  3. Kalendala ya Google yokhala ndi zikumbutso pafupipafupi kwa iwo omwe atha kuchititsa
  4. Ndi chamanyazi kulipira china chilichonse, makamaka polembetsa.

Cholinga ndikuchotsa kalendala ya Google ndi zikumbutso zapamanja kwa kasitomala zomwe akuyenera kulipira pakuchititsa. Dzimasuleni kuti "mulole agwire ntchito pang'ono, adzalipira posachedwa", "ndizovuta kuzimitsa", ndipo perekani izi ku makina opanda mzimu.

Zoonadi, ndinayamba Googled ndikufufuza, koma sindinapeze njira zothetsera mavuto, zonsezi zinapangidwira kuti mulembetse ku BILLmanager, koma mfundo No. kuchotsa izo. Ndipo chisankhocho chinakhala chovuta kwambiri.

Ndiye timatani?

Pangani chikwatu users.addon, mu /usr/local/mgr5/etc/sql/ chikwatu, mafayilo awiri opanda kanthu:

  1. malipiro_tsiku
  2. iwemail

Izi zidzalamula gulu kuti lipange mu database
/usr/local/mgr5/etc/ispmgr.db
patebulo la ogwiritsa ntchito pali magawo awiri ofanana pomwe zikhalidwe zochokera pagulu la admin zidzalembedwa.

Pangani fayilo yotchedwa ispmgr_mod_pay_data.xml mu /usr/local/mgr5/etc/xml chikwatu chokhala ndi zomwe zili

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

Izi zimapatsa gulu lamulo kuti minda yathu iwonetsedwe mu mawonekedwe a wosuta.

Yambitsaninso gululo:

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

Timalandira:

Kuyimitsa ogwiritsa ntchito mu ISPManager5 lite popanda BILLmanager

M'minda yomwe timalemba mpaka tsiku lomwe kuchititsa ayenera kugwira ntchito, ndi imelo yanji ya wogwiritsa ntchito, komwe angatumize zikumbutso kuti kuchititsa kutha posachedwa.

Tsopano tifunika kupanga script yomwe idzakumbutsa ogwiritsa ntchito kuti kuchititsa kutha nthawi zina. Adziwitseni admin kuti kuchititsa kutha. Dziwitsani wogwiritsa ntchito ndi woyang'anira kuti wosuta ndi wolumala.

Ndimakonda php pa izo ndipo ndinalemba script.

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

Timasunga zolemba izi kulikonse ndikuzitcha zomwe tikufuna, ndikuwonjezera ntchito ya cron kuti tiziyitcha kamodzi patsiku. Zonse zakonzeka.

Tsopano chikumbumtima changa chili bwino, chule wakhutitsidwa, ndipo sindinawononge ndalama zina.

Zomwe zatsala ndikudzaza deta mwa ogwiritsa ntchito tsiku lomwe kuchititsako kudalipidwa, ndi imelo ya ogwiritsa ntchito komwe angatumize zikumbutso kwa ogwiritsa ntchito.

Ndibwino ngati zimathandiza wina.

Source: www.habr.com

Kuwonjezera ndemanga