BILLmanager නොමැතිව ISPManager5 lite හි පරිශීලකයින් ස්වයංක්‍රීයව විසන්ධි කිරීම

ලබා දී ඇත්තේ:

  1. සදාකාලික බලපත්‍ර සහිත VPS සේවාදායකය ispmanager lite 5
  2. එක් සේවාදායකයකට 10-20 පරිශීලකයන්
  3. සත්කාරකත්වය අවසන් වූ අය සඳහා නිතිපතා මතක් කිරීම් සහිත Google දින දර්ශනය
  4. විශේෂයෙන් දායකත්වයක් සමඟ වෙනත් ඕනෑම දෙයක් සඳහා ගෙවීම ලැජ්ජාවකි.

ඉලක්කය වන්නේ Google දින දර්ශනය සහ සේවාදායකයාට ඔහු සත්කාරකත්වය සඳහා ගෙවිය යුතු අතින් මතක් කිරීම් ඉවත් කිරීමයි. "ඔහුට තව ටිකක් වැඩ කිරීමට ඉඩ දෙන්න, ඔහු ඉක්මනින් ගෙවනු ඇත", "එය ක්‍රියා විරහිත කිරීම කෙසේ හෝ අපහසුයි", සහ මෙය ආත්මයක් නැති යන්ත්‍රයකට භාර දෙන්න.

ඇත්ත වශයෙන්ම, මම මුලින්ම ගූගල් කර සෙව්වෙමි, නමුත් විසඳුම් කිසිවක් සොයාගත නොහැකි විය, ඔබ BILLmanager වෙත දායක වීමට අවශ්‍ය බව සියල්ල උනු, නමුත් අංක 4 මට ඉතා වැදගත් සහ බැරෑරුම් ය, මට නොලැබෙනු ඇත. එයින් මිදෙන්න. සහ තීරණය එතරම් අපහසු නොවන බව පෙනී ගියේය.

ඉතින් අපි මොකද කරන්නේ?

ෆෝල්ඩරයක් සාදන්න users.addon, /usr/local/mgr5/etc/sql/ බහලුම තුළ, හිස් ගොනු දෙකක්:

  1. ගෙවන_දිනය
  2. uwemail

මෙය දත්ත සමුදාය තුළ නිර්මාණය කිරීමට පැනලයට අණ දෙනු ඇත
/usr/local/mgr5/etc/ispmgr.db
පරිශීලක වගුවේ පරිපාලක පැනලයේ අගයන් ලියා ඇති අනුරූප ක්ෂේත්‍ර දෙකක් ඇත.

අන්තර්ගතය සහිත /usr/local/mgr5/etc/xml ෆෝල්ඩරය තුළ ispmgr_mod_pay_data.xml නමින් ගොනුවක් සාදන්න.

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

මෙය පැනලයට රීතියක් ලබා දෙන අතර එමඟින් අපගේ ක්ෂේත්‍ර පරිශීලකයාගේ සංස්කරණ පෝරමයේ සංදර්ශන වේ.

පැනලය නැවත ආරම්භ කරන්න:

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

අපට ලැබෙන්නේ:

BILLmanager නොමැතිව ISPManager5 lite හි පරිශීලකයින් ස්වයංක්‍රීයව විසන්ධි කිරීම

ක්ෂේත්‍රවල අපි සත්කාරකත්වය ක්‍රියා කළ යුත්තේ කුමන දිනය දක්වාද, සහ පරිශීලකයාගේ කුමන විද්‍යුත් තැපෑලද, සත්කාරකත්වය ඉක්මනින් අවසන් වන බවට මතක් කිරීම් යැවිය යුත්තේ කොතැනටද යන්න අපි ලියන්නෙමු.

දැන් අපට අවශ්‍ය වන්නේ යම් කාල පරතරයකින් සත්කාරකත්වය අවසන් වන බව පරිශීලකයින්ට මතක් කර දෙන ස්ක්‍රිප්ට් එකක් නිර්මාණය කිරීමයි. සත්කාරකත්වය අවසන් වන බව පරිපාලකයාට දන්වන්න. පරිශීලකයා අබල කර ඇති බව පරිශීලකයාට සහ පරිපාලකයාට දැනුම් දෙන්න.

මම ඒකේ php වලට කැමතියි සහ පිටපතක් ලිව්වා.

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

අපි මෙම ස්ක්‍රිප්ට් එක ඕනෑම තැනක සුරකින අතර අපට අවශ්‍ය ඕනෑම දෙයක් එයට අමතන්න, දිනකට වරක් එය ඇමතීමට ක්‍රෝන් කාර්යයක් එක් කරන්නෙමු. සියල්ල සූදානම්.

දැන් මගේ හෘදය සාක්ෂිය පැහැදිලිය, මැඩියා සෑහීමකට පත්වේ, මට අමතර වියදම් කිසිවක් සිදුවී නැත.

ඉතිරිව ඇත්තේ සත්කාරකත්වය ගෙවූ දිනයේ පරිශීලකයින් තුළ දත්ත පිරවීම සහ පරිශීලකයින්ට මතක් කිරීම් යැවීමට පරිශීලකයින්ගේ විද්‍යුත් තැපෑල පමණි.

කාට හරි උදව්වක් උනොත් සතුටුයි.

මූලාශ්රය: www.habr.com

අදහස් එක් කරන්න