Senden Sie eine E-Mail an den Admin, wenn der Benutzer / Mitglied bestimmte Benutzer- / Mitgliedsdaten aktualisiert

Ich habe bereits gefragt, wie ich E-Mails automatisch an den Administrator senden kann, wenn ein Benutzer / Mitglied seine Profildaten ändert. Und bekam einige sehr gute Antworten. Senden Sie automatische E-Mails an den Administrator, wenn Benutzer / Mitglied Profil ändert / hinzufügt

Jetzt ein Follow-up: Ich möchte nur die Daten (profiledata) senden / mailen, die aktualisiert / hinzugefügt wurden.

Solutions Collecting From Web of "Senden Sie eine E-Mail an den Admin, wenn der Benutzer / Mitglied bestimmte Benutzer- / Mitgliedsdaten aktualisiert"

Wie Bainternet bemerkt, müssten Sie also den neuen Feldwert mit dem vergleichen, was vor der Bearbeitung richtig war. Im Wesentlichen müssen Sie Versionskontrolle für die Profilfelder einbauen. Sie müssen eine databasetabelle hinzufügen, um diese Informationen zu speichern, indem Sie das $wpdb Objekt zum Schreiben verwenden und daraus lesen.

Im Grunde werden Sie bei personal_options_update und edit_user_profile_update die Daten wie in der vorherigen Antwort lesen, aber dann auch mit Ihrer Tabelle vergleichen, die das speichert, was im vorherigen Speicher vorhanden war. Sie senden die Daten eines bestimmten Feldes nur dann, wenn eine Abweichung besteht.

Hier ist eine modifizierte Version, die auf der Arbeit von anderen aufbaut . Diese Instanz sendet eine E-Mail, wenn das E-Mail-Feld des Benutzers geändert wurde. Tausche ‘user_email’ mit dem von dir gewünschten Benutzer-Meta.

 add_action( 'personal_options_update', 'notify_admin_on_update' ); add_action( 'edit_user_profile_update','notify_admin_on_update'); function notify_admin_on_update(){ global $current_user; get_currentuserinfo(); if (!current_user_can( 'administrator' )){// avoid sending emails when admin is updating user profiles $to = 'email@example.com';//change this email to whatever $subject = 'A user has updated their profile';//sent email subject field $message = "The user : " .$current_user->display_name . " has updated their email to: " .$current_user->user_email.""; wp_mail( $to, $subject, $message);//the code that sends the message } }