Hallo!
Ich verwende für eine Befragung die Funktion mailResume. (Vorab werden in einem anderen Fragebogen mit opt-in die Adressaten gespeichert)
Genauer gesagt habe ich eine Unterbrecherseite für eine mehrwellige Befragung. Nach einem bestimmten Zeitraum soll mittels einer Serienmail eine Einladung für die nächste Befragung im gleichen Fragebogen verschickt werden.
Beim Testen stellt sich nun heraus, dass das Programm zwar erkennt, dass eine Serienmail an die Adressaten versendet werden soll, allerdings geschieht dies nicht.
Ich verwende den Code aus dem Benutzerhandbuch für Mehrwellige Befragungen bei Selbstrekrutierung.
Wenn man den Fragebogenlink aus der Bestätigungsmail des opt-in Fragebogens anschließend erneut anklickt wird man auf den Fragebogen weitergeleitet und erhält diesen Hinweis: Das Interview wurde unterbrochen und wird nun fortgesetzt.
Welche Gründe kann es haben, dass eine Serienmail nicht verschickt wird?
Zur Ergänzung ist hier noch der Code, den ich verwende:
auf der ersten Unterbrecherseite folgenden:
// Die Zeit des ersten Aufrufs der Unterbrecherseite wird in Variable $timepart1 gespeichert
// isset() und registerVariable() verhindern, dass diese Zeit beim erneuten Aufruf der Seite (z.B. Neuladen der Seite) geändert wird und/oder dass E-Mails doppelt geplant werden
if (!isset($timepart1)) {
// Zeit speichern
$timepart1 = time();
registerVariable($timepart1);
// Einladung mit der Serienmail ID 1 zum zweiten Messzeitpunkt nach 7 Tagen senden
// Der Zeitabstand wird jeweils in Sekunden angegeben: 7 x 24 x 3600 Sekunden = 7 Tage
mailResume(false, 2, 1 * 1 * 150);
}
// Prüfen, wie viel Zeit seit dem ersten Aufruf der Seite vergangen ist
if ((time() - $timepart1) < 1 * 1 * 150) {
// Unterbrecherseite anzeigen falls es weniger als 7 Tage sind,
// damit Teilnehmer nicht schon früher die Fragen des zweiten Messzeitpunkts sehen können.
option('resume', true); // Kein Hinweis, dass das Interview fortgesetzt wird
option('nextbutton', false); // Weiter-Knopf ausblenden (Interview unterbrechen)
// text('ende1'); // Evtl. eine Verabschiedung zum ersten Fragebogen-Teil anzeigen
} else {
// Ist der Teilnehmer nach 7 Tagen zurückgekehrt und somit die aktuelle Zeit minus die neue Zeit-Variable
// größer als 7 Tage ist, dann wird die Befragung auf der nächsten Seite fortgesetzt
goToPage('next');
}
Und auf der 2. Unterbrecherseite:
// Neue Zeit-Variable für die zweiten Zeitpunkt
if (!isset($timepart2)) {
$timepart2 = time();
registerVariable($timepart2);
// Einladung zum dritten Messzeitpunkt mit der Serienmail ID 4 nach 7 Tagen senden
mailResume(false, 3, 1 * 1 * 150);
}
// Unterbrechung für 7 Tage
if ((time() - $timepart2) < 1 * 1 * 150) {
option('resume', true);
option('nextbutton', false);
} else {
goToPage('next');
}
Hier sind nun beide Male 150 sec. ausgewählt, um beim Testen nicht zu lange warten zu müssen.
LG, Theresa