No contexto de fazer uma plataforma B2B baseada apenas em um site de e-commerce wordpress, preciso alterar o e-mail enviado aos clientes após fazer um pedido removendo a lista de itens pedidos, pois pode ser uma lista longa), mas ainda enviando o total do carrinho (pedido). Segui a resposta fornecida por @LoicTheAztec que funciona perfeitamente, aqui está a função e o hook usados
function pkdb2b_remove_order_details_from_emails(){
$mailer = WC()->mailer();
remove_action('woocommerce_email_order_details', array($mailer, 'order_details'), 10);
}
add_action('woocommerce_email_order_details','pkdb2b_remove_order_details_from_emails', 5, 4);
Isso remove os detalhes do pedido. Para adicionar o total do carrinho, estou usando outra função e hook como este.
function pkdb2b_add_cart_total_email(){
;
$cart_total = WC()->cart->cart_contents_total;
echo "<p> Votre Commande montant Total = "."<strong>".$cart_total." DT"."</strong> est bien reçue</p>";
}
add_action('woocommerce_email_order_details','pkdb2b_add_cart_total_email', 5, 4);
Isso também funciona quando o pedido é validado. No entanto, quando o pedido é cancelado, no e-mail recebido não é mais visto o total do carrinho (o que é esperado, pois não temos mais um carrinho).
Eu tentei usar este $order = WC_Emails()->order_details(); $total = $order-> get_total(); ou este
$total = WC_Order()->obter_total()
Tentei ler o documento do woocommerce , mas ainda não consegui encontrar uma maneira de acessar o total do pedido ou mesmo a variável $order
O carrinho é um objeto ativo do frontend que nunca é usado nas notificações por e-mail, por vários motivos.
Se você habilitar WP_DEBUG , verá que suas tentativas de código acionam erros.
Você esqueceu de adicionar os argumentos das variáveis de gancho na sua função para obter o objeto do pedido.
Em vez disso, tente o seguinte:
Deveria funcionar.