Suporte » Plugins » Campos adicionais do Woocommerce no e-mail

  • Olá, boa noite.

    Tenho instalado em meu site os seguintes plugins derivados do “Woocommerce”:

    • WooCommerce Extra Checkout Fields for Brazil
    • WooCommerce PagSeguro
    • WooCommerce PayPal (PayPal for Woocommerce)

    O primeiro plugin é usado para definir os campos obrigatórios no Checkout Transparente do Pagseguro. Porém, eu preciso dos campos adicionais que ficam a minha direita da página de checkout, onde normalmente há um campo de “Notas do Pedido”.

    Eu adicionei estes campos via código no function.php utilizando esta postagem do woo. O que acontece é que eu crio os meus fields personalizados, faço mostrar no painel, faço mostrar na Meta do produto porém ele não é mostrado no e-mail que vem para a administração e para o cliente. E isto é necessário.

    Utilizando esta postagem também do Woo, não resolveu nada para mim. Apenas mostra o título do field mas não mostra o conteúdo inserido pelo usuário…

    Alguém sabe se é possível configurar estes campos adicionais manualmente ou com plugins sem afetar o funcionamento do “WooCommerce Extra Checkout Fields for Brazil”?

    Obs: Já testei o plugin pago Woocommerce Checkout Field Editor e também não funciona…Os campos de Tipo de Pessoa, CPF/CNPJ não aparecem e são requeridos para finalizar o pedido via boleto. Pelo que vi a ideia de conflitar é proposital.

    Desde já meus agradecimentos a quem responder.

Visualizando 1 resposta (de um total de 1)
  • Criador do tópico Matheus Bavaresco

    (@genneral)

    Consegui redirecionar para o e-mail. Aquela postagem citada, que está no “docs” do Woocommerce está errada e deveria ser corrigida.

    Este código simplesmente não funciona se os passos de criar field, adicionar a order e a meta estiverem de acordo com o outro tutorial.

    add_filter('woocommerce_email_order_meta_keys', 'my_woocommerce_email_order_meta_keys');
    
    function my_woocommerce_email_order_meta_keys( $keys ) {
    	$keys['How did you hear about us?'] = 'hear_about_us';
    	return $keys;
    }

    Não se deve definir:

    $keys['O meu campo é:'] = 'meu_campo';

    E sim:

    $keys[] = 'Meu Campo';

    Este ID “Meu Campo” deve ser definido assim:

    add_action('woocommerce_checkout_update_order_meta', 'my_custom_checkout_field_update_order_meta');
    
    function my_custom_checkout_field_update_order_meta( $order_id ) {
        if ($_POST['meu_campo']) update_post_meta( $order_id, 'Meu Campo', esc_attr($_POST['meu_campo']));
    }

    Notando que onde está a variável (acredito que seja uma var.) de nome “$order_id”, eu setei a palavra “Meu Campo” e apenas a chamo para dentro do e-mail.

    Seguindo esta resposta eu consegui solucionar: http://stackoverflow.com/questions/13631790/custom-field-values-not-getting-to-mail

    Desculpa, não achei onde editar a pergunta principal e tive que postar uma resposta.. Obrigado!

Visualizando 1 resposta (de um total de 1)
  • O tópico ‘Campos adicionais do Woocommerce no e-mail’ está fechado para novas respostas.