Je cherche une solution au problème suivant:
J'utilise WP User Frontend pour que les utilisateurs puissent créer des publications dans le frontend. Après la sauvegarde, l’administrateur doit revoir la publication et la publication (si elle est approuvée) ou la refuser (si elle n’a pas été approuvée).
Si la publication est approuvée, un courrier électronique est automatiquement envoyé à l'utilisateur pour lui indiquer que sa publication a été approuvée (j'ai déjà appris comment procéder).
Mais si l’administrateur n’approuve pas, comment envoyer à l’utilisateur un email contenant un texte personnalisé (pourquoi il n’a pas approuvé) à partir du backend, par clic sur un bouton?
Dans la page de modification, juste sous le bouton "Publier", ajoutez un bouton "Refuser et notifier" ayant ouvert une fenêtre modale (boîte épaisse) contenant un formulaire ( pré-compilé avec le nom de l'auteur de la publication, le titre de la publication et un message standard) que vous pouvez utiliser pour envoyer le courrier électronique à l'auteur de la publication.
Pour ce faire, vous avez besoin de:
'post_submitbox_misc_actions'
pour l'imprimer au bon endroit.Les 2 dernières fonctions peuvent facilement fonctionner avec Ajax Api , vous avez donc également besoin d'un fichier js contenant le code ajax et un autre code js.
Donc, une autre fonction est nécessaire pour la mise en file de script et la localisation de script avec wp_localize_script
Le bouton doit également contenir des informations accessibles par js sur la publication en cours, un attribut data-*
peut être utilisé pour cela.
Pour les fonctions qui impriment le bouton et le formulaire (points 1. et 2. ), vous devez vérifier que:
Dans la fonction d'envoi du courrier électronique (points 3. ), vous devez effectuer certaines tâches de sécurité:
Après cela, cette fonction devrait afficher des informations sur le processus d’envoi de courrier (message envoyé ou non) et les afficher sous forme json. De cette manière, js permet de donner un retour sur le modal. Si une erreur survient, c'est une bonne idée de générer également des informations de débogage, en vérifiant si le débogage est actif ou non dans WP.
Dans la réponse originale, j'ai posté le code ici. Maintenant, je viens de créer un plugin pour inclure tout le workflow décrit ici en utilisant l'approche OOP. Le plugin est prêt pour la localisation et déjà localisé en italien.
Le plugin sous licence GPL sous licence et disponible sur GitHub .
Si quelque chose ne va pas et que le débogage est actif ...