Submitted by __mathieu__ on
Bonjour,
Les actions conditionnelles d'Ubercart 2.x ne semblent pas supporter les dates relatives à la date d'expiration d'un rôle. Elles permettent seulement d'entrer une date fixe à laquelle tous les mails seront envoyés.
L'idée est de signaler par mail à chaque utilisateur que leur abonnement de trois mois se termine bientôt, par exemple une première fois à 4 semaines et une seconde fois à deux semaines de la date d'expiration.
Bien entendu, les dates d'échéance sont différentes pour chacun des utilisateurs.
J'ai gribouillé un script à placer dans les conditions customisées, et comme c'est mes premiers pas en php, j'aimerais avoir votre avis.
function send($expiration) { //$expiration est une des variables proposées par Ubercart danse les actions conditionnelles
$datenow = getdate();
$week = 7 * 24 * 60 * 60;
$twoweeks = 2 * $week;
$fourweeks = 4 * $week;
$mail1 = getdate($expiration -$fourweeks); // 4 semaines avant xpiration
$mail2 = getdate($expiration -$twoweeks); // 2 semaines avant expiration
// format dates to be compared
$now = $datenow['year'] .' '. $datenow['mon'] .' '.$datenow['mday'];
$mail1format = $mail1['year'] .' '.$mail1['mon'] .' '.$mail1['mday'];
$mail2format = $mail2['year'] .' '.$mail2['mon'] .' '.$mail2['mday'];
if ($now == $mail1format || $now == $mail2format) {
return TRUE; // Send the email notification
}
else {
return FALSE; // ne pas envoyer de courriel
}
}
// appel de la fonction
send($expiration);
Je voudrais savoir si je suis sur la bonne piste?
Est-ce qu'il y a une solution plus simple?
Est-ce que c'est bien comme ça qu'on écrit des conditions customisées dans Ubercart?
UPDATE Dans les features des
Permalien Soumis par __mathieu__ le 9 Novembre, 2009 - 23:44
UPDATE
Dans les features des produits d'Ubercart, il y une option qui permet de notifier l'utilisateur que son rôle expire. Il se trouve à l'adresse admin/store/settings/products/edit/features, dans Role assignment settings, si le module Role assignment est activé.
Malheureusement, il ne semble pas y avoir de moyens de notifier un utilisateur deux fois ou plus.
Je mets donc en Résolu.