Étant donné :
- Serveur VPS avec une licence permanente ispmanager lite 5
- 10-20 utilisateurs sur le serveur
- Google Agenda avec des rappels réguliers de ceux qui sont en retard . C'est très pratique d'avoir tout au même endroit. Grâce à cela, en cas de problème, nos spécialistes vous aideront à le résoudre dans les plus brefs délais.
- C'est frustrant de payer pour quoique ce soit d'autre, surtout pour un abonnement
L'objectif est de se débarrasser de Google Agenda et des rappels manuels aux clients concernant le paiement de l'hébergement. Éviter de penser « il peut encore travailler un peu, il va bientôt payer » ou « c'est un peu délicat de déconnecter ». Confier cette tâche à une machine sans âme.
Bien sûr, j'ai d'abord recherché sur Google, mais je n'ai pas trouvé de solutions. Tout conduisait à la nécessité de prendre un abonnement BILLmanager, mais le point n°4 est très important et sérieux pour moi, je ne m'en débarrasserai pas. Et la solution ne s'est avérée pas si compliquée.
Alors, que faisons-nous.
Nous créons un dossier users.addon dans le répertoire /usr/local/mgr5/etc/sql/, avec deux fichiers vides :
- pay_date
- uwemail
Cela donnera l'ordre au panneau de créer dans la base de données
/usr/local/mgr5/etc/ispmgr.db
dans la table users deux champs correspondants où les valeurs seront enregistrées à partir du panneau d'administration.
Créons le fichier ispmgr_mod_pay_data.xml dans le dossier /usr/local/mgr5/etc/xml avec le contenu
Payé jusqu'à
Email de l'utilisateur
Paid before
User email
Cela indique au panneau que nos champs doivent s'afficher dans le formulaire d'édition de l'utilisateur.
Nous redémarrons le panneau :
/usr/local/mgr5/sbin/mgrctl -m ispmgr exitNous obtenons :

Dans les champs, nous écrivons jusqu'à quel jour l'hébergement doit fonctionner, et quel email utilisateur, où envoyer les rappels que l'hébergement est bientôt terminé.
Il est maintenant nécessaire de créer un script qui rappellera aux utilisateurs que l'hébergement se termine à intervalles réguliers. Alerter l'administrateur sur l'expiration de l'hébergement. Informer l'utilisateur et l'administrateur que l'utilisateur est déconnecté.
Je suis proche de PHP, donc j'ai écrit le script.
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 l'hébergement expire dans '.$days_left.' jours', "Texte pour l'utilisateur concernant le fait qu'il reste tant de jours");
}
}
if($days_left == 3) {
mail($adminemail, 'ISPMANAGER UTILISATEUR '.$user['name'], $user['name'] . " L'hébergement expire dans ".$days_left." jour(s)");
}
if($days_left <= 0){
mail($adminemail, 'ISPMANAGER UTILISATEUR '.$user['name'].' DÉSACTIVÉ', $user['name'].' Désactivé');
exec("/usr/local/mgr5/sbin/mgrctl -m ispmgr user.suspend elid=".$user["name"]);
if($user['uwemail'] != "") {
mail($user['uwemail'], 'ISPMANAGER hébergement désactivé', 'Texte pour l'utilisateur que l'hébergement est terminé');
}
}
// si vous le souhaitez, vous pouvez également écrire un petit IF pour que les données soient supprimées après un certain temps, mais cela ne m'est pas nécessaire
}
Ce script peut être enregistré où vous le souhaitez et nommé comme vous le souhaitez, ajoutez-le dans une tâche cron pour l'appeler une fois par jour. Tout est prêt.
Maintenant, la conscience est tranquille, la grenouille est satisfaite, aucun coût supplémentaire n'a été engagé.
Il reste à remplir les données des utilisateurs concernant la date à laquelle l'hébergement a été payé, et l'email des utilisateurs à qui envoyer des rappels.
Heureux si cela peut aider quelqu'un.
Source : habr.com
