Quão irritante é o fato de você só poder reenviar a “Notificação de novo pedido” na página de administração de pedido único? E se você estiver testando e personalizando modelos de e-mail e precisar enviar um e-mail para si mesmo com a notificação de “processamento” ou “concluído”, sem precisar fazer um novo pedido de teste ou alternar o status do pedido duas vezes para acionar novamente a notificação?
Bem, hoje veremos como adicionar uma função “Reenviar qualquer e-mail” em “ações de pedido” na página de edição de pedido único. Claro, certifique-se de mudar o e-mail de cobrança para o seu, caso contrário, o cliente receberá esses e-mails e não você. Divirta-se!
Quão ruim do WooCommerce é que você não pode reenviar uma notificação de e-mail “concluída” (por exemplo) das ações do pedido! Vamos mudar isso com uma personalização simples!
Snippet PHP: permitir que o administrador reenvie qualquer e-mail de pedido
Nesse caso, direcionei o e-mail de “processamento do cliente”. Para fazer isso, criei uma ação de pedido personalizada (observe o ID de ação de pedido personalizado ‘resend_processing‘, porque ele é usado posteriormente no gatilho ‘woocommerce_order_action_resend_processing‘ , portanto, se você alterar isso, também precisará alterar o nome do gancho ‘woocommerce_order_action_{action}”).
Além disso, você precisará chamar a classe de e-mail correta, em meu caso: WC_Email_Customer_Processing_Order
/** * @snippet Reenviar e-mails @ WooCommerce Order Admin * @how-to Get CustomizeWoo.com GRÁTIS * @author Rodolfo Melogli * @compatível WooCommerce 7 * @donate $ 9 https://businessbloomer.com/bloomer-armada/ */ add_filter( ‘woocommerce_order_actions’, ‘bbloomer_resend_processing_email_action’, 9999, 2 ); function bbloomer_resend_processing_email_action( $actions, $order ) { if ( $order->has_status( wc_get_is_paid_statuses() ) ) { $actions[‘resend_processing’] = ‘Reenviar email de processamento’; } return $ações; } add_action( ‘woocommerce_order_action_resend_processing’, ‘bbloomer_resend_processing_email_trigger’ ); function bbloomer_resend_processing_email_trigger($order) { WC()->mailer()->emails[‘WC_Email_Customer_Processing_Order’]->trigger($order->get_id(), $order, true); }
Onde adicionar este snippet?
Você pode colocar snippets do PHP na parte inferior do arquivo functions.php do seu tema filho (exclua “?>” se você o tiver lá). O CSS, por outro lado, vai para o arquivo style.css do seu tema filho. Certifique-se de saber o que está fazendo ao editar esses arquivos – se precisar de mais orientação, dê uma olhada no meu tutorial em vídeo gratuito” Onde colocar a personalização do WooCommerce?”
Este snippet (ainda) funciona?
Por favor, deixe-me saber nos comentários se tudo funcionou como esperado. Ficarei feliz em revisar o snippet se você relatar o contrário (forneça capturas de tela). Eu testei este código com o tema Storefront, a versão WooCommerce listada acima e uma hospedagem compatível com WordPress no PHP 7.3.
Se você acha que este código economizou tempo e dinheiro, sinta-se à vontade para participar de mais de 14.000 WooCommerce Weekly assinantes para atualizações de postagens de blog ou mais de 250 apoiadores do Business Bloomer para 365 dias de benefícios WooCommerce. Agradecemos antecipadamente 🙂
Precisa de ajuda com o WooCommerce?
Confira estes tutoriais em vídeo gratuitos. Você pode aprender como personalizar o WooCommerce sem plug-ins desnecessários, como definir corretamente as configurações do plug-in WooCommerce e até mesmo como dominar a solução de problemas do WooCommerce em caso de bug!
Rodolfo Melogli
Fundador da Business Bloomer
Autor, especialista em WooCommerce e Palestrante do WordCamp, Rodolfo trabalha como freelancer independente de WooCommerce desde 2011. Seu objetivo é para ajudar empreendedores e desenvolvedores a superar seus pesadelos com WooCommerce. Rodolfo adora viajar, correr atrás de bolas de tênis e futebol e, claro, pizza de forno a lenha.