Adicione notas de pedido do WooCommerce a e-mails concluídos da sua loja WordPress
Não há nada melhor do que ter informações sobre um pedido que você fez em relação ao seu status ou quaisquer outros dados que você possa achar úteis em relação ao seu pedido. Por padrão, o WooCommerce armazena todas as ações vinculadas a um pedido no banco de dados. Esta série de ações está disponível na administração, na barra lateral quando você edita um pedido.
Mas seus clientes não têm acesso a essa lista de ações. A boa notícia é que você pode adicioná-lo facilmente a qualquer email enviado pelo WooCommerce. Neste post, mostrarei para você adicionar às notas do pedido o e-mail completo (é o e-mail enviado quando o status do pedido é marcado como concluído). Mas você também pode usar esse método para adicionar as notas do pedido a qualquer outro e-mail.
Modelos personalizados ou ganchos?
Apenas um lembrete rápido: todos os e-mails no WooCommerce são fornecidos usando modelos e você pode substituir os modelos padrão criando seus próprios modelos. Basicamente, um modelo personalizado permite substituir os arquivos padrão do WooCommerce e usar seus próprios arquivos personalizados. Aqui está um tutorial rápido que explicará como criar seus modelos personalizados: http://docs.woothemes.com/document/template-structure/.
Você pode adicionar as notas do pedido em modelos personalizados, mas gostaria de mostrar outra maneira de fazer isso, usando um gancho. A ideia é não usar templates customizados, mas usar o arquivo functions.php apenas dentro da pasta do seu tema.
As notas do pedido são comentários do WordPress
Notas de pedido são comentários do WordPress com um tipo específico “order_note”, para que você possa usar a classe WP_Query do WordPress aplicada a comentários usando a função get_comments().
O gancho que precisamos usar é uma ação chamada “woocommerce_email_order_meta”. A ideia é chamar uma função customizada quando essa ação for carregada no processo WooCommerce.
Usar get_comments() simplifica muito a maneira como podemos recuperar as notas do pedido, só precisamos ter certeza de que queremos listar os comentários vinculados a um pedido específico usando o ID do post e o atributo de comentário “aprovar”, o que significa que o comentário é validado (pelo WooCommerce neste caso).
O código
Aqui está o código para colocar dentro do arquivo functions.php na pasta do seu tema:
add_action( ‘woocommerce_email_order_meta’, ‘woo_add_order_notes_to_email’ );
function woo_add_order_notes_to_email() {
global $woocommerce, $post;
$args = array(
‘post_id’ => $post->ID,
‘approve’ => ‘approve’,
‘type’ => ‘order_note’
);
$notes = get_comments( $args );
echo ‘<h2>’ . __( ‘Order Notes’, ‘woocommerce’ ) . ‘</h2>’;
echo ‘<ul class=”order_notes”>’;
if ( $notes ) {
foreach( $notes as $note ) {
$note_classes = get_comment_meta( $note->comment_ID, ‘is_customer_note’, true ) ? array( ‘customer-note’, ‘note’ ) : array( ‘note’ );
?>
<li rel=”comment_ID ) ; ?>” class=””>
<div class=”note_content”>
comment_content ) ) ); ?>
</div>
<p class=”meta”>
comment_date_gmt ), current_time( ‘timestamp’, 1 ) ) ); ?>
</p>
</li>
<?php
}
} else {
echo ‘<li>’ . __( ‘There are no notes for this order yet.’, ‘woocommerce’ ) . ‘</li>’;
}
echo ‘</ul>’;
}
Como você pode ver, esse código é bem simples, nada muito complexo, então você pode personalizá-lo facilmente. Observe o uso de algumas funções interessantes como human_time_diff(), wptexturize() ou wp_kses_post().
Bem, espero que tenham gostado desse post, por favor deixe um comentário no formulário abaixo, eu adoraria receber seu feedback sobre ele!