Como enviar e-mail para autor do post no WordPress

Vamos imaginar uma situação: Você desenvolveu um site onde várias pessoas que contribuem, sendo que eles não tem acesso ao painel do WordPress, esses artigos (Postagens) são enviados para um e-mail, e analisados, e depois publicados. E uma das solicitações dos autores é um recurso para notificação dessas publicações.

Para resolver essa questão, podemos criar uma função, onde ela envia esse e-mail quando é salvo um post. Abaixo o Código da função, comentada (Lembrando que essa função estará no arquivo functions.php):

/**
* Função para enviar um aviso ao autor da publicação
* @param type $post_id
*/
function notice_published_author($post_id) {

    //Resgata as informações do POST
    $post = get_post($post_id);
    //Status permitido pra o autor receber mensagem
    $white_list = array('publish', 'future');
    //Tipo do post permitido
    $post_type = array('post');

    //Faz a verificação, para ver se o autor receberá a notificação
    if ($post && in_array($post->post_status, $white_list) && in_array($post->post_type, $post_type)) {
        //Recupera as informaões do do Autor
        $user = get_userdata($post->post_author);
        //Título do POST
        $title = $post->post_title;
        //Permalink do Post
        $permalink = get_permalink($post_id);

        //Data do Post convertido em timestamp
        $date_post = strtotime($post->post_date);

        //Data Formatada
        $date_format = date_i18n('j \d\e F \d\e Y \a\s g:i:s', $date_post);

        //Mensagem que autor irá receber
        $message = "Publicação do Post :" . $date_format . "\n\r";
        $message .= "Título: $title \n\r";
        $message .= "Link: $permalink \n\r";
        //Título da mensagem
        $subject = "Seu Post foi publicado";
        //Envia a mensagem para autor
        wp_mail($user->user_email, $subject, $message);
    }
}

Agora vamos adicionar essa função pra que o WordPress execute quando for adicionar um novo post

//Adicionar a função, no gancho para um novo Post
add_action('wp_insert_post', 'notice_published_author');

Agora, a cada novo post, o autor será notificado.

Espero que tenha ajudado.

E até a próxima.

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *