5 * MINUTE_IN_SECONDS, 'display' => __('Every 5 minutes (send-mails.de)', 'purehost-send-mails')]; $plaene['sendmails_15min'] = ['interval' => 15 * MINUTE_IN_SECONDS, 'display' => __('Every 15 minutes (send-mails.de)', 'purehost-send-mails')]; return $plaene; } private static function tabellen(): void { global $wpdb; $alt = (int) get_option('sendmails_db_version', 0); require_once ABSPATH . 'wp-admin/includes/upgrade.php'; $zs = $wpdb->get_charset_collate(); dbDelta('CREATE TABLE ' . Warteschlange::tabelle() . " ( id bigint(20) unsigned NOT NULL AUTO_INCREMENT, erstellt datetime NOT NULL, naechster datetime NOT NULL, versuche int(11) NOT NULL DEFAULT 0, status varchar(12) NOT NULL DEFAULT 'wartet', quelle varchar(100) NOT NULL DEFAULT '', empfaenger varchar(500) NOT NULL DEFAULT '', betreff varchar(255) NOT NULL DEFAULT '', letzter_fehler text NULL, groesse int(11) NOT NULL DEFAULT 0, daten longtext NOT NULL, PRIMARY KEY (id), KEY faellig (status,naechster), KEY quelle (status,quelle) ) $zs;"); dbDelta('CREATE TABLE ' . Abgleich::tabelle() . " ( id bigint(20) unsigned NOT NULL, zeit datetime NOT NULL, art varchar(16) NOT NULL, empfaenger varchar(254) NOT NULL, grund varchar(300) NULL, wirkung varchar(16) NULL, ergebnis varchar(500) NULL, fertig tinyint(1) NOT NULL DEFAULT 0, versuche tinyint(3) NOT NULL DEFAULT 0, verarbeitet datetime NOT NULL, PRIMARY KEY (id), KEY offen (fertig), KEY empfaenger (empfaenger(191),art,zeit), KEY zeit (zeit) ) $zs;"); dbDelta('CREATE TABLE ' . Protokoll::tabelle() . " ( id bigint(20) unsigned NOT NULL AUTO_INCREMENT, zeit datetime NOT NULL, quelle varchar(100) NOT NULL, domain varchar(190) NOT NULL DEFAULT '', empfaenger int(11) NOT NULL DEFAULT 1, status varchar(16) NOT NULL, fehler varchar(300) NULL, ref varchar(64) NOT NULL DEFAULT '', an varchar(500) NOT NULL DEFAULT '', betreff varchar(255) NOT NULL DEFAULT '', zustellung varchar(16) NOT NULL DEFAULT '', zustell_info text NULL, inhalt longtext NULL, PRIMARY KEY (id), KEY zeit (zeit), KEY quelle (quelle,zeit), KEY ref (ref) ) $zs;"); if ($alt > 0 && $alt < 3) { // Spalte fertig kam mit Version 3: vorhandene Ereignisse sind schon eingetragen, nicht erneut anwenden. $wpdb->query($wpdb->prepare('UPDATE %i SET fertig = 1', Abgleich::tabelle())); } if ($alt < 6) { // Wochenbericht kam mit Version 6: der erste erst in der naechsten Woche, nicht gleich nach dem Update update_option(Waechter::WOCHE, wp_date('o-W'), false); } update_option('sendmails_db_version', self::DB_VERSION, true); } }