Jalara Studio

veröffentlicht am

Admin-E-Mail-Adresse ohne Bestätigungslink ändern

#


Nach der Änderung der E-Mail-Adresse im Bereich Einstellungen Allgemein erscheint seit WordPress 4.9.0 folgender Text:
Diese Adresse wird für administrative Zwecke verwendet. Wenn du diese änderst, bekommst du eine E-Mail an deine neue E-Mail-Adresse, um die Änderung zu bestätigen. Die neue Adresse wird erst nach dieser Bestätigung benutzt. Eine Änderung der Administratoren-E-Mail-Adresse in max-mustermann@website.example steht noch aus. (engl. "This address is used for admin purposes. If you change this we will send you an email at your new address to confirm it. The new address will not become active until confirmed. There is a pending change of the admin email to max-mustermann@website.example."):

Somit kann die Admin-E-Mail-Adresse erst geändert werden, wenn der entsprechende Link in der Bestätigungs-E-Mail angeklickt wurde:

Nachteile der Bestätigungs-E-Mail

Die Bestätigungs-E-Mail wird nach der Änderung an die neu angegebene E-Mail-Adresse gesendet. Dies kann zwei Nachteile haben:

  1. Hast du hier versehentlich eine falsche E-Mail-Adresse angegeben (z.B. max-mustermann@mail.com statt max-mustermann@gmail.com) könnte derjenige der die Bestätigungs-E-Mail aus Versehen erhalten hat, administrativen Zugriff auf die Website erlangen, noch bevor die fehlerhafte Eingabe bemerkt wurde.
  2. Hast du die Website für einen Kunden eingerichtet und möchtest du diese am Schluß übergeben, so kann der Kunde ohne vorherige Aufklärung die Bestätigungs-E-Mail übersehen oder falsch interpretieren, weil diese mit den Worten „du hast vor kurzem eine Änderung der E-Mail-Adresse des Administrators deiner Website angefordert“ beginnt.

WordPress-Funktion update_option_new_admin_email()

Das Senden der Bestätigungs-E-Mail wird durch die WordPress-Funktion update_option_new_admin_email()1 ausgelöst. Die Funktion befindet sich in der WordPress-Datei misc.php im Verzeichnis wp-admin/includes.2 Aufgerufen wird die genannte WordPress-Funktion über die Action Hooks 'add_option_new_admin_email' und 'update_option_new_admin_email'.3

Die WordPress-Funktion update_option_new_admin_email() muss daher von den beiden genannten Action Hooks entfernt werden, wenn nach der Änderung der E-Mail-Adresse keine E-Mail-Bestätigung an den Administrator gesendet werden soll. Zudem müssen beide Action Hooks eine neue Funktion aufrufen, die die Änderung der E-Mail-Adresse durchführt.4 Dies gelingt mit dem folgenden Codeschnipsel, dass in ein seitenspezifisches Plugin oder in die Datei functions.php im Child Theme eingefügt wird:

// Bestätigungs-E-Mail nicht senden
remove_action( 'add_option_new_admin_email', 'update_option_new_admin_email' );
remove_action( 'update_option_new_admin_email', 'update_option_new_admin_email' );

// Änderung durchführen
function custom_update_option_new_admin_email( $old_value, $value ) {
    update_option( 'admin_email', $value );
}
add_action( 'add_option_new_admin_email', 'custom_update_option_new_admin_email', 10, 2 );
add_action( 'update_option_new_admin_email', 'custom_update_option_new_admin_email', 10, 2 );

Hinweis: Nach der Änderung der E-Mail-Adresse wird eine E-Mail mit der Bestätigung der Änderung an die E-Mail-Adresse gesendet, die zuvor aktiv war. Dennoch wird der oben beschriebene Hinweis weiterhin bei der Änderung im Bereich EinstellungenAllgemein angezeigt. Dieser Hinweis lässt sich z.B. über CSS mit dem Selektor #new-admin-email-description unsichtbar schalten:

function blende_keinen_bestatigungshinweis_ein() { 
    echo '<style>#new-admin-email-description{display:none}</style>';
}
add_action('admin_head', 'blende_keinen_bestatigungshinweis_ein');

Du kannst diesen Codeschnipsel an der Stelle einfügen, an der du auch den obigen Codeschnipsel eingefügt hast.

Alternative Methoden

Alternativ kannst du die E-Mail-Adresse auch in der Datenbank (Tabelle wp_options) oder über die Optionsseite WEBSITE.EXAMPLE/wp-admin/options.php im Backend verändern. Ersetze WEBSITE.EXAMPLE mit deiner Domain.

Links