Nachdem ich mich noch eine Weile damit beschäftigt habe, komme ich zumindest aktuell zu einem eher ernüchternden Ergebnis. Um es nochmal zu erklären:
Ein User soll sich über ein Formular anmelden können und dabei auch gleich ein Abo-Produkt wählen, soll heißen er bestimmt, wie lange er User bleiben möchte. Diese Daten werden zusätzlich in fe_users gespeichert. Der noch inaktive Datensatz wird dann vom Admin eine Review unterzogen. Der Kunde bekommt dann alle benötigten Zahlungsinfos durch den Admin geschickt. Ist das Geld da, wird der User freigeschaltet. Hierbei soll eine automatische Benachrichtigung an den User verschickt werden. Gleichzeitig trägt der Admin das Enddatum für den datnsatz anhand des bestellten Abos ein. Wenn der Abozeitraum vorbei ist, soll automatisch eine Mail an den User mit einem Hinweis gehen. Außerdem kann sich der User dann nicht mehr einloggen.
Und hier liegt der Hund begraben, denn das Ablaufdatum wird wohl nur dann geprüft, wenn der Datensatz aufgerufen wird, d.h. es kann garnicht automatisch eine Mail verschickt werden, weil das System ja nicht aktiv irgendwelche Werte ändert, sondern nur bei Abruf passiv schaut, ob der Datnsatz abgelaufen ist.
Man müsste also eine Extension haben, die quasi als Hintergrundprozess jeden Tag prüft, ob Datensätze in fe_users abgelaufen sind und dann automatisch an die betreffenden User eine Mail verschickt.
Besser wäre im hiesigen Fall wohl folgendes:
Es wird ein Shop eingerichtet, in dem der Kunde ein Produkt (z.b. Abo über 3 Monate) kaufen kann. Der Admin prüft die Bestellung, gibt dem Kunden eine bestimmte Gruppenzugehörigkeit, stellt das Ablaufdatum ein und schaltet ihn frei. Eine Mail an den Kunden muss er dabei selber verschicken.
Nach drei Monaten läuft der Account ab. Der Kunde merkt dies, weil er sich nicht mehr einloggen kann. Also geht er in den Shop und kauft ein neues Produkt und die Sache geht von vorne los. Auch hier gibt es einen Knackpunkt: Wenn der Datensatz des Kunden abgelaufen ist, wird er sich auch im Shop wohl kaum einloggen können, sondern müsste einen neuen Datensatz anlegen, anstatt den alten zu verwenden.
Ideal wäre es, wenn anhand des Ablaufdatums lediglich die Gruppenzugehörigkeit geändert würde. Und genau das müsste man wohl beim Login triggern: Ist der Datensatz abgelaufen und gehört der Datensatz unter anderem zur Gruppe XY, dann entferne die Gruppenzugehörigkeit zu XY und lösche das Ablaufdatum. Vielleicht könnte man so etwas in der Extension newloginbox einbaun, die ich aktuell verwende.
Gruss, Tobias