0 votes
ago in SoSci Survey (dt.) by s108584 (110 points)

Hallo!

ich habe einen Fragebogen mit mehreren Messzeitpunkten, zu denen ich via Serienmails einladen möchte. Dafür wollte ich auf der ersten Unterbrecherseite gleich den Versand aller Mails programmieren, damit die Teilnehmenden z.B. auch den Link zu MZP 3 bekommen wenn sie an MZP2 nicht teilgenommen haben.

Der Code für MZP2 funktioniert auch, für den dritten MZP (hier timespart2 genannt, nach 5 Tagen seit Basismessung timespart1) kommt die Mail dann aber nicht mehr an.

Zusätzlich habe ich eine Erinnerungsmail einen Tag später programmiert, die dann natürlich aber nicht mehr gesendet werden soll, wenn der Link aus der Mail schon bearbeitet wurde.

Das ist der Code:

  // Timespart1 (Basismessung)
if (!isset($timepart1)) {
  // Basismessung: Zeit speichern
  $timepart1 = time();
  registerVariable($timepart1);

  // Einladung zum zweiten Messzeitpunkt (ID 1) nach 2 Tagen
  mailResume(false, 1, 2 * 24 * 3600); 

  // Erste Erinnerungsmail (ID 13) nach 3 Tagen
  mailResume(false, 13, 3 * 24 * 3600); 
}

// Prüfen, wie viel Zeit seit dem ersten Aufruf der Seite vergangen ist
if ((time() - $timepart1) < 2 * 24 * 3600) {
  option('resume', true); // Kein Hinweis, dass das Interview fortgesetzt wird
  option('nextbutton', false); // Weiter-Knopf ausblenden
  text('W105');  // Hinweis nach Timespart 1 anzeigen
} else {
  // Teilnehmer kommt zurück und macht weiter
  mailRevoke(13);  // <<< Storniert nur die Erinnerungsmail (ID 13)
  
  goToPage('next');
}


// Timespart2 (5 days after the baseline measurement)
  // Send invitation to third measurement point (ID 2) after 5 days
  mailResume(false, 2, 5 * 24 * 3600); 

  // Send reminder (ID 14) after 6 days
  mailResume(false, 14, 6 * 24 * 3600); 
}

// Check if 5 days since baseline measurement have passed
if ((time() - $timepart1) >= 5 * 24 * 3600) {
  // Participant returns and continues
  mailRevoke(14);  // <<< THIS cancels the reminder correctly in SoSci Survey

  goToPage('next');
}

Könnte mir bitte jemand helfen und sagen, warum zwar die erste Mail ankommt, alles danach aber nicht mehr, bzw. wie ich eine Programmierung aller Serienmails zu Beginn so erreichen kann, dass der Link dann auch immer zum passenden MZP führt?

Das wäre wunderbar, vielen Dank und liebe Grüße

ago by SoSci Survey (340k points)
Was zeigt die Debug-Information auf dieser Seite denn an?

Bei mailRevoke(13) fehlt ein "false", es muss heißen: mailRevoke(false, 13)

Wenn das alles in einem PHP-Code steht, wird das untere IF übrigens nie greifen, weil das obere IF nach 2 Tagen bereits auf die nächste Seite weiterleitet.

Please log in or register to answer this question.

Willkommen im Online-Support von SoSci Survey.

Hier bekommen Sie schnelle und fundierte Antworten von anderen Projektleitern und direkt von SoSci Survey.

→ Eine Frage stellen


Welcome to the SoSci Survey online support.

Simply ask a question to quickly get answers from other professionals, and directly from SoSci Survey.

→ Ask a Question

...