Enviar email ao usuário que sua postagem foi rejeitada

Estou procurando por uma solução para o seguinte problema:

Estou usando WP User Frontend , para que os usuários possam criar posts no frontend. Depois de salvar, o administrador precisa rever a postagem e publicar (se aprovado), ou rejeitar (se não for aprovado).

Se a postagem for aprovada, um e-mail é enviado automaticamente ao usuário, que sua postagem foi aprovada (isto já descobri como fazer).

Mas se o administrador não aprovar, como enviar ao usuário um e-mail, com um possível texto personalizado (por que ele não aprovou) do backend, por clique em um botão?

Solutions Collecting From Web of "Enviar email ao usuário que sua postagem foi rejeitada"

Na página de edição de postagem, apenas sob o botão ‘Publicar’, adicione um botão ‘Rejeitar e Notificar’ que uma vez clicou em abrir uma janela modal (thickbox) que contém um formulário (pré compilado com o nome do post-autor, o título do post e uma mensagem padrão) que você pode usar para enviar o e-mail para o autor do post.

Para realizar isso, você precisa:

  1. Uma function que imprime o botão. Você pode usar o gancho de ação 'post_submitbox_misc_actions' para imprimi-lo no lugar certo
  2. Uma function que exibe o formulário em uma janela modal. Esta function deve usar o ID da postagem atual para obter o autor e colocar o e-mail do autor em um campo oculto.
  3. Uma function que envia o email quando o formulário é enviado

As 2 últimas funções podem funcionar facilmente com o Ajax Api , então você precisa também de um arquivo js onde colocar o código ajax e outros js.

Então, outra function é necessária para o script enqueueing e script localizar com wp_localize_script

O botão deve conter também informações acessíveis pelo js sobre a postagem atual, um atributo data-* pode ser usado para isso.

Para as funções que imprimem o botão e o formulário (pontos 1. e 2. ), você deve verificar que:

  • o usuário atual possui resources de editor
  • a página atual é a página de edição de publicação ( post.php )

Na function que envia o email (pontos 3. ), você precisa fazer algumas tarefas de segurança:

  • verifique se o usuário atual possui resources de editor
  • verifique um nonce (anteriormente adicionado como campo oculto no formulário)

Depois disso, esta function deve produzir algumas informações sobre o processo de envio de email (mensagem enviada ou não) e exibi-las como json, dessa forma, via js é possível dar uma resposta sobre o modal. Se um erro ocorreu, é uma boa idéia também produzir algumas informações de debugging, talvez verificar se a debugging está ativa ou não no WP.


Editar: Código de Plugin

Na resposta original, publiquei o código aqui. Agora eu acabei de criar um plugin para include todo o stream de trabalho descrito aqui usando a abordagem OOP. O plugin está pronto para a localização e já localizado em italiano.

O plugin na GPL licenciado e disponível no GitHub .


Capturas de canvas do plugin


O botão Rejeitar e Notificar


A forma modal


Mensagem de Sucesso


Se algo der errado e o debug está ativo …

Mensagem de erro com depuração