{"id":3962,"date":"2014-12-17T11:38:32","date_gmt":"2014-12-17T13:38:32","guid":{"rendered":"http:\/\/blog.turbosite.com.br\/?p=3962"},"modified":"2014-12-17T11:38:32","modified_gmt":"2014-12-17T13:38:32","slug":"como-adicionar-campos-personalizados-no-checkout-do-woocommerce","status":"publish","type":"post","link":"https:\/\/www.turbosite.com.br\/blog\/como-adicionar-campos-personalizados-no-checkout-do-woocommerce\/","title":{"rendered":"Como adicionar campos personalizados no &#8220;checkout&#8221; do Woocommerce"},"content":{"rendered":"<p>Sem d\u00favida, o Woocommerce \u00e9 un\u00e2nime em quest\u00e3o e-commerce com WordPress, s\u00e3o mais de 5 milh\u00f5es de Downloads e diversos plugins para estender suas funcionalidades.<\/p>\n<p>Diante deste gigante do e-commerce, as vezes \u00e9 necess\u00e1rio personalizar um pouco e \u00e9 isto que vamos ensinar, como criar novos campos na tela de fechamento de pedido. Criar campos personalizados no Woocommerce pode parecer complicado, mas, vamos mostrar uma maneira f\u00e1cil, r\u00e1pida e sem a necessidade de utilizar mais plugins.<\/p>\n<p>O que vamos precisar fazer \u00e9:<\/p>\n<ol>\n<li>Criar o campo na tela de Checkout<\/li>\n<li>Validar o novo campo<\/li>\n<li>Salvar o valor do novo campo no banco de dados<\/li>\n<li>Mostrar o campo na tela gerencial de pedidos<\/li>\n<\/ol>\n<p>&nbsp;<\/p>\n<p>Vamos come\u00e7ar, acesse a pasta do seu tema e edite o arquivo functions.php, adicione no final os c\u00f3digos citados.<\/p>\n<p>&nbsp;<\/p>\n<h2>1 &#8211; Criar o campo na tela de Checkout<\/h2>\n<pre class=\"top-margin:20 bottom-margin:20 left-set:true left-margin:20 right-set:true right-margin:20 whitespace-before:2 whitespace-after:2 lang:php decode:true \" title=\"Criando o novo campo\">add_action( 'woocommerce_after_order_notes', 'novo_campo_woocommerce' );\n \nfunction novo_campo_woocommerce( $checkout ) {\n \n    echo '&lt;div id=\"novo_campo_woocommerce\"&gt;&lt;h2&gt;' . __('Novo campo, informa\u00e7\u00e3o de teste') . '&lt;\/h2&gt;';\n \n    woocommerce_form_field( 'novo_campo', array(\n        'type'          =&gt; 'text',\n        'class'         =&gt; array('novo_campo form-row-wide'),\n        'label'         =&gt; __('Campo de Teste'),\n        'placeholder'   =&gt; __('Digite suas informa\u00e7\u00f5es aqui'),\n        ), $checkout-&gt;get_value( 'novo_campo' ));\n \n    echo '&lt;\/div&gt;';\n \n}<\/pre>\n<p>&nbsp;<\/p>\n<p>Exemplo de como ficar\u00e1 na tela de Checkout.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-3964\" src=\"https:\/\/www.turbosite.com.br\/blog\/wp-content\/uploads\/2014\/12\/planos-de-revenda-hostgator.jpg\" alt=\"planos-de-revenda-hostgator\" width=\"477\" height=\"124\" srcset=\"https:\/\/www.turbosite.com.br\/blog\/wp-content\/uploads\/2014\/12\/planos-de-revenda-hostgator.jpg 477w, https:\/\/www.turbosite.com.br\/blog\/wp-content\/uploads\/2014\/12\/planos-de-revenda-hostgator-300x78.jpg 300w\" sizes=\"auto, (max-width: 477px) 100vw, 477px\" \/><\/p>\n<p>&nbsp;<\/p>\n<h2>2\u00a0&#8211;\u00a0Validar o novo campo<\/h2>\n<p>O pr\u00f3ximo passo agora \u00e9 validar o campo conforme nossa necessidade.<\/p>\n<pre class=\"top-margin:20 bottom-margin:20 left-set:true left-margin:20 right-set:true right-margin:20 whitespace-before:2 whitespace-after:2 lang:php decode:true\" title=\"Valida\u00e7\u00e3o\">add_action('woocommerce_checkout_process', 'validar_novo_campo_woocommerce');\n \nfunction validar_novo_campo_woocommerce() {\n\n    if ( empty( $_POST['novo_campo']) )\n        wc_add_notice( __( 'Obrigat\u00f3rio o preenchimento.' ), 'error' );\n}<\/pre>\n<p>&nbsp;<\/p>\n<p>Exemplo de mensagem de erro retornada.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-3965\" src=\"https:\/\/www.turbosite.com.br\/blog\/wp-content\/uploads\/2014\/12\/exemplo-mensagem-de-erro.jpg\" alt=\"exemplo-mensagem-de-erro\" width=\"987\" height=\"73\" srcset=\"https:\/\/www.turbosite.com.br\/blog\/wp-content\/uploads\/2014\/12\/exemplo-mensagem-de-erro.jpg 987w, https:\/\/www.turbosite.com.br\/blog\/wp-content\/uploads\/2014\/12\/exemplo-mensagem-de-erro-300x22.jpg 300w, https:\/\/www.turbosite.com.br\/blog\/wp-content\/uploads\/2014\/12\/exemplo-mensagem-de-erro-768x57.jpg 768w\" sizes=\"auto, (max-width: 987px) 100vw, 987px\" \/><\/p>\n<p>&nbsp;<\/p>\n<h2>3\u00a0&#8211; Salvar o novo valor no banco de dados<\/h2>\n<pre class=\"top-margin:20 bottom-margin:20 left-set:true left-margin:20 right-set:true right-margin:20 whitespace-before:2 whitespace-after:2 lang:php decode:true\" title=\"my_custom_checkout_field_update_order_meta\">add_action( 'woocommerce_checkout_update_order_meta', 'novo_campo_checkout_order' );\n \nfunction novo_campo_checkout_order( $order_id ) {\n    if ( ! empty( $_POST['novo_campo'] ) ) {\n        update_post_meta( $order_id, 'Novo Campo', sanitize_text_field( $_POST['novo_campo'] ) );\n    }\n}<\/pre>\n<p>&nbsp;<\/p>\n<h2>4\u00a0&#8211;\u00a0Mostrar o campo na tela de gerenciamento<\/h2>\n<pre class=\"top-margin:20 bottom-margin:20 left-set:true left-margin:20 right-set:true right-margin:20 whitespace-before:2 whitespace-after:2 lang:php decode:true\">add_action( 'woocommerce_admin_order_data_after_billing_address', 'mostrar_novo_campo', 10, 1 );\n \nfunction mostrar_novo_campo($order){\n    echo '&lt;p&gt;&lt;strong&gt;'.__('Novo Campo').':&lt;\/strong&gt; ' . get_post_meta( $order-&gt;id, 'Novo Campo', true ) . '&lt;\/p&gt;';\n}<\/pre>\n<p>&nbsp;<\/p>\n<p>Exemplo de como aparecer\u00e1 na tela de gerenciamento de pedido, campo destacado com a cor <span style=\"color: #000000;\">amarela<\/span>.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-3966 size-full\" src=\"https:\/\/www.turbosite.com.br\/blog\/wp-content\/uploads\/2014\/12\/exemplo-tela-gerencial.jpg\" alt=\"exemplo-tela-gerencial\" width=\"1100\" height=\"366\" srcset=\"https:\/\/www.turbosite.com.br\/blog\/wp-content\/uploads\/2014\/12\/exemplo-tela-gerencial.jpg 1100w, https:\/\/www.turbosite.com.br\/blog\/wp-content\/uploads\/2014\/12\/exemplo-tela-gerencial-300x100.jpg 300w, https:\/\/www.turbosite.com.br\/blog\/wp-content\/uploads\/2014\/12\/exemplo-tela-gerencial-1024x341.jpg 1024w, https:\/\/www.turbosite.com.br\/blog\/wp-content\/uploads\/2014\/12\/exemplo-tela-gerencial-768x256.jpg 768w\" sizes=\"auto, (max-width: 1100px) 100vw, 1100px\" \/><\/p>\n<p>&nbsp;<\/p>\n<p>Tamb\u00e9m \u00e9 poss\u00edvel remover os campos que n\u00e3o s\u00e3o\u00a0necess\u00e1rios, vamos postar esta dica amanh\u00e3.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>As vezes \u00e9 necess\u00e1rio personalizar um pouco o Checkout do Woocommerce e \u00e9 isto que vamos ensinar, como criar novos campos na tela de fechamento de pedido.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[6,28,30],"tags":[36,667],"class_list":["post-3962","post","type-post","status-publish","format-standard","hentry","category-dicas","category-tutoriais","category-wordpress-2","tag-adicionar-campos-woocommerce","tag-woocommerce-checkout"],"_links":{"self":[{"href":"https:\/\/www.turbosite.com.br\/blog\/wp-json\/wp\/v2\/posts\/3962","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.turbosite.com.br\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.turbosite.com.br\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.turbosite.com.br\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.turbosite.com.br\/blog\/wp-json\/wp\/v2\/comments?post=3962"}],"version-history":[{"count":0,"href":"https:\/\/www.turbosite.com.br\/blog\/wp-json\/wp\/v2\/posts\/3962\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.turbosite.com.br\/blog\/wp-json\/wp\/v2\/media?parent=3962"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.turbosite.com.br\/blog\/wp-json\/wp\/v2\/categories?post=3962"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.turbosite.com.br\/blog\/wp-json\/wp\/v2\/tags?post=3962"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}