it-swarm.com.de

Die Benachrichtigung für neue Benutzer enthält keinen Aktivierungslink

Beim Hinzufügen neuer Benutzer über das Dashboard ist mir aufgefallen, dass die Benachrichtigungs-E-Mail, die an einen Benutzer gesendet wurde, als dieser zu Wordpress hinzugefügt wurde, nicht ordnungsgemäß funktioniert. In der E-Mail ist die folgende Zeile enthalten, Sie werden jedoch feststellen, dass der Registrierungsschlüssel fehlt und der Link nicht richtig dargestellt wird.

To set your password, visit the following address: http://www.domain.com/wp-login.php

Ich habe ein bisschen herumgebuddelt und den Inhalt von wp_mail so ausgegeben:

    add_filter('wp_mail', function($email) {
        var_dump($email);
        return $email;
    }, 1);

Und dies für die neue Benutzerbenachrichtigungs-E-Mail sehen:

array(5) {
  ["to"]=>
  string(20) "[email protected]"
  ["subject"]=>
  string(47) "[My Great Blog] Your username and password info"
  ["message"]=>
  string(224) "Username: test19

To set your password, visit the following address:

<http://www.domain.com/wp-login.php?action=rp&key=1nTPsJVMk3H2eEM3Wgpm&login=test19>

http://www.domain.com/wp-login.php
"
  ["headers"]=>
  string(0) ""
  ["attachments"]=>
  array(0) {
  }
}

Was seltsam ist, ist, dass es eine Art korrekten Link enthält, aber der HTML-Code fehlerhaft ist (no A href = "") und das Schließen fehlt. Ich habe dies auf Wordpress Trac bestätigt.

Jeder hat einen Einblick, warum dies nicht funktioniert, scheint ein so entscheidender Teil einer Website.

Version 4.9.8.

Setzen Sie 'wp_mail_content_type' bereits auf text/html.

2
Louis W

In WordPress 4.9.0 wurden 2 Filter in die neue Benutzerbenachrichtigungsfunktion (wp_new_user_notification) eingefügt:

  • wp_new_user_notification_email - um die an den Benutzer gesendete E-Mail anzupassen
  • wp_new_user_notification_email_admin - zum Anpassen der an Admin gesendeten E-Mail

Wir können die zweite ignorieren, da dies die E-Mail ist, die an den Administrator gesendet wurde. Das Format unterscheidet sich von dem in Ihrer Frage. Mit wp_new_user_notification_email können Sie dagegen die Optionen 'to', 'subject', 'message' und 'headers' ändern, bevor diese an die Funktion wp_mail () gesendet werden.

Sie haben jedoch den Filter "wp_mail" abgefangen, der unmittelbar nach "wp_new_user_notification_email" ausgelöst wird, und an diesem Punkt sieht alles gut aus. Das Problem muss also später auftreten. Der einzige verbleibende Ort, an dem die Nachricht gefiltert werden kann, ist der Filter wp_mail.

Wenn Sie überzeugt sind, dass es keine Probleme mit charset- oder clientseitigen E-Mails gibt, suchen Sie nach weiteren Aufrufen für add_filter ('wp_mail', ...). Überprüfen Sie auch den Quellcode der empfangenen E-Mail.

Entschuldigung, ich kann nicht mehr helfen. Dies ist eine interessante Frage und ich freue mich darauf, endlich zu erfahren, was die Lösung ist oder welche anderen Vorschläge ich mache.

1
Clinton