Hallo,
Du kannst einen Filter schreiben der den Text der Nachricht vor dem versenden ändert. Der Hook dafür ist: comment_notification_text
Siehe auch wp-includes/pluggable.php #1069
Gruß
Frank
Thread-Starter
lee.sa
(@leesa-1)
Hi Frank,
danke für deine Antwort.
könntest du das etwas genauer erklären? Das wäre super.
Müsste ich dann in pluggable selber Code schreiben?
Ich habe nur Grundkenntnisse in PhP. Ich glaube mehr als vorhandenen Code ändern wäre bei mir etwas zu riskant, leider.
Grüße,
Lisa
Hallo Lisa,
WordPress verwendet ein System von s.g. Hooks ( http://de.wikipedia.org/wiki/Hook_%28Informatik%29 ) um es Programmierern zu erlauben an den meisten Stellen einzugreifen, ohne den Code von WordPress selbst zu ändern.
Der Hook comment_notification_text enthält den Text der Benachrichtigung bevor er versendet wird. Wenn du in deiner functions.php nun einen Filter auf diesen Hook registrierst, kannst du den Text dort manipulieren.
add_filter ( 'comment_notification_text', 'my_mail_filter',10,1);
function my_mail_filter ($content) {
// DO Something
return $content;
}
mit add_filter ( http://codex.wordpress.org/Function_Reference/add_filter ) registrierst du deine eigene Filterfunktion (my_mail_filter) an den Hook.
In der Funktion hast du dann in der Variablen $content den Text der Mail und kannst ihn ändern, überschreiben, was immer du willst.
Das was du an Text mit Return zurückgibst, wird dann versendet.
Gruß
Frank
Thread-Starter
lee.sa
(@leesa-1)
Hallo Frank,
danke für die ausführliche Erklärung.
Den Code habe ich in soweit verstanden, aber ich weiß nicht genau was ich für Befehle für das Löschen der IP und Email brauche.
Das müsste ja alles bei „Do something“ rein. Ist das sehr komplex und viel?
Denn dann wird es ziemlich schwierig für mich als Php Anfänger, das alleine zu schaffen ohne die WordPress Seite zu crashen.
Aber jetzt weiß ich zumindest, wo ich ansetzen müsste.
Vielen Dank!
Grüße,
Lisa
Thread-Starter
lee.sa
(@leesa-1)
Hi,
vielen Dank für deine Hilfe! Ich habe das Problem jetzt auf eine andere Weise gelöst und möchte hier zeigen wie, falls noch jemand dasselbe versuchen möchte.
Das Plugin „Private Email Notifications“ (http://wordpress.org/extend/plugins/private-email-notifications/) (Leider veraltet) hat bei mir funktioniert.
Ich habe den Code des Plugins an einer Stelle verändert, um auch die IP rauszubekommen:
Finde diesen Code:
$notify_message .= sprintf( __('Author : %1$s (IP: %2$s , %3$s)'), $comment->comment_author, $comment->comment_author_IP, $comment_author_domain ) . "\r\n";
und ersetze ihn durch:
$notify_message .= sprintf( __('Author : %1$s'), $comment->comment_author, $comment->comment_author_IP, $comment_author_domain ) . "\r\n";
Hat bei mir super geklappt.
Hallo,
dazu zwei Anmerkungen.
– Da dein spintf nur noch einen Parameter entgegennimmt, brauchst du auch den 2 und 3 Parameter (IP, Domain) nicht mehr übergeben, so das die Zeile lautet:
$notify_message .= sprintf( __('Author : %1$s'), $comment->comment_author ) . "\r\n";
– Sichere deine Änderungen, wenn es doch mal ein Update des Plugins gibt und du es dann aktualisierst sind sonst deine Änderungen weg. (Gleiches gilt für den WordPress Core und für Themes, für Themes gibt es das Konzept der Childthemes um das zu umgehen)
Gruß
Frank
Thread-Starter
lee.sa
(@leesa-1)
Hi,
danke. Habe den Code entsprechend gekürzt und getestet – alles klappt.
Am besten lade ich dann den ganzen Ordner des Plugins runter und speichere es als Backup oder?
Und dasselbe mit dem Theme Ordner?
Dann könnte ich eigtl schon fast den ganzen WordPress ordner sichern inkl. Datenbank Dateien. Hmm
Grüße,
Lisa
Hi Lisa,
was soll ich sagen 🙂 Backup ist IMMER eine gute Idee. Regelmäßig und mit der Datenbank natürlich.
Was das Theme angeht, dafür gibt es das Konzept der Childthemes.
Hab ich erst beim vorletzen WP Meetup bei uns was erzählt.
http://wpmeetup-hannover.de/2013/02/28/childthemes-was-ist-das-und-wie-kann-ich-das-selbst-nutzen/
Und das Netz ist natürlich auch voll mit Anleitungen.
Der Vortrag zu Backup ist leider noch nicht online.
Gruß
Frank
Thread-Starter
lee.sa
(@leesa-1)
Hi Frank,
danke für den interessanten Artikel. Wenn ich Zeit habe, werde ich das mit den Childthemes mal versuchen.
Bis dahin benutze ich dann ein Backup und werde das Theme nicht updaten 😉
Grüße,
Lisa