Ich suche einen Ratschlag für ein Mail-sendendes Plugin

Ich möchte ein WordPress-Plugin schreiben, das für neu registrierte Benutzer täglich eine E-Mail für 7 Tage sendet, aber ich weiß nicht, wie ich anfangen soll.

Mein Plan wäre:

  • Haken Sie die Registerfunktion an, um die erste E-Mail zu senden, nachdem sich der Benutzer registriert hat, und senden Sie einige Benutzerdetails an eine benutzerdefinierte Tabelle (die Spalten sind jetzt nur die Benutzer-ID und ein Zähler mit der Anzahl der gesendeten E-Mails)

  • Verwenden Sie ein Cron-Skript, das alle 24 Stunden ausgeführt wird, um Daten aus dieser Tabelle abzurufen und bei Bedarf die E-Mails zu senden und den Zähler zu erhöhen

Gibt es einen besseren Weg, um das zu erreichen?

Solutions Collecting From Web of "Ich suche einen Ratschlag für ein Mail-sendendes Plugin"

Hier ist keine benutzerdefinierte Tabelle erforderlich. Sie können die Benutzermetadaten-Tabelle und die API verwenden .

Erstellen Sie dann einen WP-Cron-Job, der alle 24 Stunden ausgeführt wird (oder häufiger, wenn Sie paranoid sind). Bei der callbackanfrage werden Benutzer, die sich in den letzten 7 Tagen registriert haben, wie folgt verwendet:

/* * Get all users registered after $start and before $end (dates in yyyy-mm-dd format) * Based on my answer to this question: http://wordpress.stackexchange.com/questions/51485/how-can-i-query-all-users-who-registered-today/51492#51492 * @param (string) $start - start date in yyyy-mm-dd format * @param (string) $end - end date in yyyy-mm-dd format */ function wpse51485_get_users_registered($start='', $end='' ){ global $wpdb; if( empty($start) ) $date = date('Ym-d'); if ( empty($end) ) $end = $start; //Should probably validate input and throw up error. In any case, the following ensures the query is safe. $start_dt = new DateTime($start. ' 00:00:00'); $s = $start_dt->format('Ymd H:i:s'); $end_dt = new DateTime($end.' 23:59:59'); $e = $end_dt->format('Ymd H:i:s'); $sql = $wpdb->prepare("SELECT wp_users.* FROM wp_users WHERE 1=1 AND CAST(user_registered AS DATE) BETWEEN %s AND %s ORDER BY user_login ASC",$s,$e); $users = $wpdb->get_results($sql); return $users; } 

und schließe sie schließlich durch, und sende bei Bedarf eine E-Mail (benutze und aktualisiere das Meta des Benutzers entsprechend).