it-swarm.com.de

Senden Sie dem Benutzer eine E-Mail, dass sein Beitrag abgelehnt wurde

Ich suche nach einer Lösung für das folgende Problem:

Ich benutze WP User Frontend , damit Benutzer Beiträge im Frontend erstellen können. Nach dem Speichern muss der Administrator den Beitrag überprüfen und veröffentlichen (falls genehmigt) oder ablehnen (falls nicht genehmigt).

Wenn der Beitrag genehmigt wird, wird automatisch eine E-Mail an den Benutzer gesendet, dass sein Beitrag genehmigt wurde (dies habe ich bereits herausgefunden, wie es geht).

Aber wenn der Administrator nicht zustimmt, wie kann er dem Benutzer eine E-Mail mit einem möglichen benutzerdefinierten Text (warum er nicht zustimmt) aus dem Backend per Klick auf eine Schaltfläche senden?

1
Asped

Fügen Sie auf der Nachbearbeitungsseite direkt unter der Schaltfläche "Veröffentlichen" eine Schaltfläche "Ablehnen und Benachrichtigen" hinzu, mit der nach dem Klicken ein modales (Thickbox-) Fenster geöffnet wird, das ein Formular enthält ( vorkompiliert mit dem Namen des Autors, dem Titel des Beitrags und einer Standardnachricht), mit der Sie die E-Mail an den Autor des Beitrags senden können.

Um dies zu erreichen, benötigen Sie:

  1. Eine Funktion, die die Schaltfläche druckt. Sie können den Aktions-Hook 'post_submitbox_misc_actions' verwenden, um ihn an der richtigen Stelle zu drucken
  2. Eine Funktion, die das Formular in einem modalen Fenster ausgibt. Diese Funktion sollte die aktuelle Beitrags-ID verwenden, um den Autor zu ermitteln und die E-Mail-Adresse des Autors in ein verstecktes Feld zu stellen.
  3. Eine Funktion, die die E-Mail sendet, wenn das Formular gesendet wird

Die letzten beiden Funktionen können problemlos mit Ajax Api verwendet werden. Sie benötigen daher auch eine js-Datei, in die der Ajax- und der andere js-Code eingefügt werden.

Daher wird eine weitere Funktion für die Skripteinreihung und die Skriptlokalisierung mit wp_localize_script benötigt.

Die Schaltfläche sollte auch js zugängliche Informationen zum aktuellen Beitrag enthalten, dazu kann ein data-*-Attribut verwendet werden.

Für die Funktionen, mit denen die Schaltfläche und das Formular gedruckt werden (Punkte 1. und 2. ) müssen Sie Folgendes überprüfen:

  • der aktuelle Benutzer verfügt über Editorfunktionen
  • die aktuelle Seite ist die Nachbearbeitungsseite ( post.php )

In der Funktion, die die E-Mail sendet (Punkte 3. ), müssen Sie einige Sicherheitsaufgaben ausführen:

  • überprüfen Sie, ob der aktuelle Benutzer über Editorfunktionen verfügt
  • ein Nonce ankreuzen (zuvor als verstecktes Feld im Formular hinzugefügt)

Danach sollte diese Funktion einige Informationen über den E-Mail-Sendevorgang ausgeben (gesendete oder nicht gesendete Nachricht) und diese als json ausgeben. Auf diese Weise ist es über js möglich, ein Feedback zum Modal zu geben. Wenn ein Fehler aufgetreten ist, sollten Sie auch einige Debug-Informationen ausgeben und prüfen, ob das Debuggen in WP aktiv ist oder nicht.


Bearbeiten: Plugin-Code

In der ursprünglichen Antwort habe ich den Code hier gepostet. Jetzt habe ich ein Plugin erstellt, das alle hier beschriebenen Arbeitsabläufe mit dem OOP -Ansatz enthält. Das Plugin ist zur Lokalisierung bereit und bereits in Italienisch lokalisiert.

Das Plugin in der GPL lizensiert und verfügbar auf GitHub .


Plugin Screenshots


The Reject and Notify button


The modal form


Success Message


Wenn etwas schief geht und das Debug aktiv ist ...

Error message with debug

2
gmazzap