Hallo zusammen,
ich bräuchte nochmals Unterstützung bei der Erstellung des PHP-Codes zum Versand von Serienmails bei einer mehrwelligen Befragung.
Ich habe kürzlich eine separate Frage zum Versand an individuellen Uhrzeiten gestellt:
Individuelle Uhrzeit mit mailSchedule
Allerdings denke ich nun, dass es sinnvoller ist, die Fragen an der gleichen Stelle zu klären. Ich bedanke mich im Voraus vielmals für Ihre Unterstützung!
Die Umfrage soll am Ende folgenden Aufbau haben:
- Große T0 Messung (T1)
- Tägliche Prä-Messungen für 7-14 Tage (Dauer wird randomisiert) (T2)
- Tägliche Messungen während der Intervention für 10 Tage (T3)
- Tägliche Post-Messungen für 14 Tage (T4)
- Große Post-Messung (T5)
Die VPn sollen im Eingangsfragebogen die Möglichkeit bekommen, die Uhrzeit des täglichen Versands selbst auszuwählen. Ich habe jetzt eine Variable erstellt, in der die VPn per Dropdown-Auswahl vier unterschiedliche Uhrzeiten auswählen können. Muss ich hier etwas beachten?
Nach den täglichen Prä-Messungen, welche für die verschiedenen Versuchspersonen unterschiedlich lang sein werden, soll es für jede Versuchsperson direkt am nächsten Tag weitergehen.
Zudem sollen Erinnerungsmails verschickt werden, wenn die Versuchspersonen den Fragebogen nicht ausfüllen.
Bisher habe ich Folgendes erarbeitet. Da ich leider noch wenig Erfahrungen mit PHP-Codes habe, würde ich mich über Unterstützung sehr freuen.
$tage = (int)value('RG01', 'label');
$versand = strtotime(value('IT01'));
// Einladungsmails
// T2
for ($i=0; $i<$tage; $i++) {
mailSchedule(false, $i+1, strtotime('+'.($i+1).' days'$versand));
}
// T3
for ($i<$tage+1; $i<$tage+10; $i++) {
mailSchedule(false, $i+1, strtotime('+'.($i+1).' days'$versand));
}
// T4
for ($i<$tage+11; $i<$tage+24; $i++) {
mailSchedule(false, $i+1, strtotime('+'.($i+1).' days'$versand));
}
// T5
mailSchedule(false, $i+1, strtotime('+'.($i+1).' days'$versand));
// Erinnerungsmails (z.B. nach einer und zwei Stunden)
// T2
for ($i=0; $i<$tage; $i++) {
mailSchedule(false, $i+1, strtotime('+'.($i+1).' hours'), ['status' => 'no-response']);
}
for ($i=0; $i<$tage; $i++) {
mailSchedule(false, $i+1, strtotime('+'.($i+2).' hours'), ['status' => 'no-response']);
}
// T3
for ($i<$tage+1; $i<$tage+10; $i++) {
mailSchedule(false, $i+1, strtotime('+'.($i+1).' hours'), ['status' => 'no-response']);
for ($i<$tage+1; $i<$tage+10; $i++) {
mailSchedule(false, $i+1, strtotime('+'.($i+2).' hours'), ['status' => 'no-response']);
// T4
for ($i<$tage+11; $i<$tage+24; $i++) {
mailSchedule(false, $i+1, strtotime('+'.($i+1).' hours'), ['status' => 'no-response']);
}
for ($i<$tage+11; $i<$tage+24; $i++) {
mailSchedule(false, $i+1, strtotime('+'.($i+2).' hours'), ['status' => 'no-response']);
}
// T5
mailSchedule(false, $i+1, strtotime('+'.($i+1).' hours'), ['status' => 'no-response']);
mailSchedule(false, $i+1, strtotime('+'.($i+2).' hours'), ['status' => 'no-response']);
Zum Testen der Umfrage würde ich im Anschluss gerne die Zeiträume verkürzen. Wie kann ich das am besten machen?
Mir ist bewusst, dass das bisher alles noch etwas wild ist. Ich würde mich trotzdem über Hilfestellungen sehr freuen.
Vielen Dank im Voraus!
Viele Grüße