it-swarm.com.de

Was ist falsch am Anpassen der E-Mail-Benachrichtigung für neue Benutzer durch add_filter?

Wenn sich ein neuer Benutzer anmeldet, wird die Bestätigungs-E-Mail mit den folgenden Angaben empfangen:

Username: testuser To set your password, visit the following address:  

Aber ich möchte es anpassen, also habe ich den folgenden Code zum functions.php hinzugefügt
aber es funktioniert nicht!!! und trotzdem wird die Standard-Email verschickt !!!
Ich benutze 4.9.9 WordPress

<?php
add_filter( 'wp_new_user_notification_email', 'custom_wp_new_user_notification_email', 10, 3 );

function custom_wp_new_user_notification_email( $wp_new_user_notification_email, $user, $blogname ) {

$wp_new_user_notification_email['subject'] = sprintf(__( '[%s] Your username and password' ), $blogname, $user->user_login );

$key = get_password_reset_key( $user );
$message = sprintf(__('Welcome to our website,')) . "\r\n\r\n";
$message .= 'To set your password, visit the following address:' . "\r\n\r\n";
$message .= network_site_url("wp-login.php?action=rp&key=$key&login=" . rawurlencode($user->user_login), 'login') . "\r\n\r\n";
$message .= "After this you can enjoy our website!" . "\r\n\r\n";
$message .= "Kind regards," . "\r\n";
$message .= "Support Team" . "\r\n";
$wp_new_user_notification_email['message'] = $message;

$wp_new_user_notification_email['headers'] = 'From: MyName<[email protected]>'; 
// this just changes the sender name and email to whatever you want (instead of the default WordPress <[email protected]>

return $wp_new_user_notification_email;
}
?>

warum funktioniert der code nicht? könntest du mir helfen?

1
Sh.Dehnavi

Es ist eigentlich nichts falsch an dem Code, den Sie haben (ich habe es getestet, wie Sie es oben haben und es funktioniert gut).

Sie müssen jedoch einige zusätzliche Möglichkeiten berücksichtigen:

  1. Die Funktion wp_new_user_notification() ist eine steckbare Funktion. So kann es durch ein Plugin oder durch benutzerdefinierten Code ersetzt werden. Und wenn es ersetzt wird, besteht die Möglichkeit, dass der benutzerdefinierten Version der Funktion der Filter-Hook wp_new_user_notification_email fehlt.
  2. Möglicherweise gibt es bereits einen anderen Filter, der an denselben Filter angehängt ist, aber eine frühere Priorität (<10) hat und den Prozess umleitet oder auf andere Weise beendet. Das wäre eine schlechte Form, aber es ist möglich. Das ist nicht das wahrscheinlichste Problem, aber es ist möglich, deshalb erwähne ich es.
  3. Möglicherweise zielen Sie auf die falsche Funktion. Wir gehen davon aus, dass es sich bei der E-Mail um die Standardregistrierung WP handelt, aber Sie haben dies nicht ausdrücklich angegeben. Wenn Sie etwas tun, bei dem es eine benutzerdefinierte Registrierung und/oder einen anderen Prozess gibt, durchläuft es nicht unbedingt wp_new_user_notification().

Mit diesen Möglichkeiten würde ich Ihnen Folgendes empfehlen:

  1. Überprüfen Sie Ihr Design, um sicherzustellen, dass dies die einzige Instanz eines wp_new_user_notification_email-Filters ist.
  2. Deaktivieren Sie ALLE Plugins.
  3. Wiederholen Sie den Test mit allen deaktivierten Plugins.
1
butlerblog