Trechos de código do WooCommerce que você precisará como desenvolvedor WordPress

[aioseo_eeat_author_tooltip]
[aioseo_eeat_reviewer_tooltip]
Trechos de código do WooCommerce

Se você cria lojas em um site WordPress, o WooCommerce oferece uma base sólida, mas o verdadeiro controle vem dos snippets inteligentes. Pequenos trechos de código personalizado permitem que você molde a página da loja, a página de finalização da compra e até mesmo pequenos detalhes do comportamento do produto sem plugins pesados. Você pode inserir snippets em um arquivo PHP, usar o arquivo functions.php em um tema filhoou instalar um plugin de snippets de código para um fluxo de trabalho mais seguro e visual. Muitos desenvolvedores preferem o Code Snippets ou o Code Snippets Pro porque permitem ativar, desativar e exportar regras sem alterar os arquivos do tema. Isso mantém seu código-fonte organizado e facilita a importação automática para novos projetos.

Os snippets ajudam em tarefas comuns, como alterar o título da página da loja, ocultar os breadcrumbsou ajustar os campos de finalização de compra para coletar os dados corretos. Você pode adicionar um campo personalizado a uma variação de produto, alterar o texto do botão do carrinho ou definir um valor mínimo de pedido. É possível refinar as configurações do WooCommerce, registrar o suporte do WooCommerce em um tema e ativar o zoom, o lightbox e o slider da galeria de produtos do WooCommerce em minutos.

Além disso, você pode adicionar uma moeda personalizada, renomear uma aba de produto para "mais informações" ou ocultar categorias de produtos de um widget. Seja colando funções simples ou mantendo uma biblioteca crescente de código personalizado, esses trechos de código práticos oferecem funcionalidade limpa e sem excessos, e funcionam bem na maioria das versões quando testados adequadamente.

Conteúdo

Como usar esses trechos de código do WooCommerce com segurança

Como usar esses trechos de código do WooCommerce com segurança
#título_da_imagem

Adicionar trechos de código personalizados ao WooCommerce pode mudar completamente o funcionamento do seu site WordPress. No entanto, se você colar a linha de código errada no arquivo functions.php ou cometer um erro em uma função PHP, todo o site pode parar de funcionar. Por isso, é fundamental seguir boas práticas ao trabalhar com código personalizado.

Use um tema filho ou um plugin de snippets

  • Insira seu código personalizado no arquivo functions.php do tema filho para que ele permaneça intacto após as atualizações do tema.
  • Se você não quiser editar os arquivos do tema diretamente, instale um plugin de Code Snippets ou o Code Snippets Pro.
  • Essas ferramentas permitem criar, gerenciar e exportar trechos de código sem alterar os arquivos do tema.
  • Os plugins também incluem opções de importação automática, o que facilita a reutilização de seus trechos de código personalizados em diferentes sites.

Teste antes de publicar

  • Nunca cole código diretamente em um site em produção.
  • Sempre teste seus trechos de código em um ambiente de teste.
  • Esta etapa garante que não haja conflitos com as configurações do WooCommerce, campos de finalização de compra ou outros arquivos do tema.

Documente seu código personalizado

  • Adicione comentários claros acima de cada função, explicando o que ela faz.
  • Exemplo: se afeta a página de finalização da compra, a página da loja, as categorias de produtos do WooCommerce ou os campos de finalização da compra da conta.
  • Uma rotulagem adequada facilita a compreensão do seu código-fonte posteriormente.

Mantenha backups e controle de versão

  • Armazene seus trechos de código fora do WordPress usando Git ou outra ferramenta de controle de versão.
  • Se você usa um plugin de trechos de código, aproveite o recurso de exportação.
  • Ter um backup permite reverter rapidamente o processo caso algo não funcione corretamente após uma atualização.

Se usados ​​corretamente, os snippets se tornam um conjunto de ferramentas poderoso. Eles ajudam você a personalizar o WooCommerce sem sobrecarregar seu site WordPress com plugins desnecessários, mantendo tudo organizado e estável.

Precisa de ajuda especializada com a personalização do WooCommerce?

A equipe de desenvolvimento WooCommerce da Seahawk cria funcionalidades personalizadas, gerencia fluxos de finalização de compra e desenvolve soluções de código estáveis, sob medida para o seu negócio.

Conceitos Essenciais de Tema e Configuração de UX: Trechos de Código do WooCommerce

Antes de se aprofundar em trechos de código avançados, é útil configurar o suporte ao WooCommerce e otimizar o tema para uma experiência de compra mais fluida. Muitos desenvolvedores negligenciam esses aspectos básicos, mas eles podem melhorar drasticamente a aparência e a experiência do usuário na loja.

Declare a compatibilidade com o WooCommerce no seu tema

Por padrão, nem todos os temas do WordPress vêm com suporte completo ao WooCommerce. Adicioná-lo manualmente garante que as galerias de produtos e os layouts sejam exibidos corretamente. Você pode fazer isso no arquivo functions.php do tema filho ou usando um plugin de snippets personalizados.

function mytheme_add_woocommerce_support() { add_theme_support( 'woocommerce' ); add_theme_support( 'wc-product-gallery-zoom' ); add_theme_support( 'wc-product-gallery-lightbox' ); add_theme_support( 'wc-product-gallery-slider' ); } add_action( 'after_setup_theme', 'mytheme_add_woocommerce_support' );

Este trecho de código adiciona suporte básico ao WooCommerce, juntamente com zoom na galeria de produtos, lightbox na galeria de produtose slider na galeria de produtos. Juntos, esses recursos melhoram a navegação de produtos na página de produto individual.

Remover trilhas de navegação do WooCommerce

Os breadcrumbs podem ser úteis para a navegação, mas às vezes poluem o design. Se o seu tema já inclui breadcrumbs ou se você prefere um cabeçalho mais limpo, você pode remover os breadcrumbs do WooCommerce com este trecho de código:

add_action( 'init', 'remove_wc_breadcrumbs' ); function remove_wc_breadcrumbs() { remove_action( 'woocommerce_before_main_content', 'woocommerce_breadcrumb', 20, 0 ); }

Use isso com cautela, pois algumas lojas dependem de breadcrumbs para otimização de mecanismos de busca (SEO). Se você estiver substituindo-os por outro estilo de navegação, removê-los pode simplificar o design.

Substitua o título da página da loja

O título padrão da página da loja geralmente é apenas "Loja". Para melhor se adequar à sua marca ou campanhas sazonais, você pode substituí-lo por um texto personalizado.

add_filter( 'woocommerce_page_title', 'shop_page_title' ); function shop_page_title( $title ) { if ( is_shop() ) { return "Nossas Coleções"; } return $title; }

Você pode renomear o título da página da loja para que corresponda às suas categorias de produtos, campanhas ou linguagem da marca. Por exemplo, durante as promoções de fim de ano, altere-o para "Ofertas Especiais de Fim de Ano" para gerar maior engajamento.

Ajustes no catálogo que melhoram a descoberta

Com os elementos básicos configurados, o próximo passo é refinar o catálogo do WooCommerce. Esses trechos de código ajudam você a controlar como os produtos e categorias aparecem no seu site WordPress, facilitando a busca por parte dos clientes, sem confusão ou desordem.

Alterar a ordenação padrão do catálogo

Por padrão, o WooCommerce organiza os produtos em ordem alfabética ou pela ordem do menu. Você pode alterar isso para exibir os itens mais recentes primeiro ou ordenar por preço. Essa pequena alteração pode destacar as novidades ou as ofertas com melhor custo-benefício.

add_filter( 'woocommerce_default_catalog_orderby', 'custom_default_catalog_orderby' ); function custom_default_catalog_orderby() { return 'date'; // Opções: 'date', 'price', 'title' }

Isso garante que os compradores vejam seus produtos mais recentes logo no topo da página da loja.

Ajuste o número de produtos por página

Muitos produtos por página podem sobrecarregar os compradores. Poucos produtos podem frustrá-los com cliques intermináveis. Veja como controlar a quantidade de produtos:

add_filter( 'loop_shop_per_page', 'new_loop_shop_per_page', 20 ); function new_loop_shop_per_page( $cols ) { $cols = 12; // Ajuste este número conforme necessário return $cols; }

Ajustar esse valor equilibra a velocidade do site com a experiência do usuário.

Ocultar categorias ou produtos dos arquivos

Às vezes, você pode não querer que certas categorias de produtos apareçam na página da loja. Itens sazonais, produtos exclusivos para atacado ou categorias de teste podem ser excluídos com um pequeno trecho de código.

add_action( 'pre_get_posts', 'remove_categories_shop' ); function remove_categories_shop( $q ) { if ( ! $q->is_main_query() || ! $q->is_post_type_archive() ) return; if ( ! is_admin() && is_shop() ) { $q->set( 'tax_query', array(array( 'taxonomy' => 'product_cat', 'field' => 'slug', 'terms' => array( 'wholesale', 'seasonal' ), 'operator' => 'NOT IN' ))); } }

Isso ajuda a manter seu catálogo organizado, mostrando apenas os produtos que você deseja que os clientes vejam.

Excluir categorias do widget de categorias de produtos

Se você estiver usando o de categorias de produtos do WooCommerce nas barras laterais, talvez não queira que todos os produtos sejam listadosali. Você pode excluir uma categoria assim:

add_filter( 'woocommerce_product_categories_widget_args', 'woo_product_cat_widget_args' ); function woo_product_cat_widget_args( $cat_args ) { $cat_args['exclude'] = array( 25 ); // Substitua 25 pelo ID da sua categoria return $cat_args; }

Este trecho de código oferece mais controle sobre a descoberta de produtos e ajuda a direcionar a atenção do cliente para suas categorias mais lucrativas.

Melhorias na página do produto que aumentam a conversão: trechos de código do WooCommerce

A página de produto individual é onde os compradores decidem se vão comprar. Com alguns trechos de código do WooCommerce, você pode simplificar o layout, reduzir a confusão e destacar os detalhes mais importantes.

Renomear ou remover guias de produtos

As abas de produtos do WooCommerce, como "Descrição" e "Informações adicionais", nem sempre combinam com o estilo da sua loja. Você pode renomeá-las ou remover as abas extras completamente.

add_filter( 'woocommerce_product_tabs', 'woo_rename_tab', 98 ); function woo_rename_tab( $tabs ) { $tabs['description']['title'] = 'Mais informações'; return $tabs; }

Você também pode remover a Informações Adicionais se achar que ela é redundante:

add_filter( 'woocommerce_product_tabs', 'remove_product_tabs', 98 ); function remove_product_tabs( $tabs ) { unset( $tabs['additional_information'] ); return $tabs; }

Substitua "Sem estoque" por um texto mais amigável

A etiqueta padrão "Sem estoque" pode afastar os clientes. Uma abordagem mais suave, como "Vendido" ou "Em breve", mantém o interesse.

add_filter( 'woocommerce_get_availability', 'availability_filter_func' ); function availability_filter_func( $availability ) { $availability['availability'] = str_ireplace( 'Fora de estoque', 'Vendido', $availability['availability'] ); return $availability; }

Essa pequena alteração pode melhorar a experiência do cliente sem a necessidade de plugins adicionais.

Exibir “Já está no carrinho” em vez de “Adicionar ao carrinho”

Se um cliente já adicionou um produto, ver o mesmo "Adicionar ao carrinho " pode ser confuso. Este trecho de código o substitui por "Já está no carrinho".

add_filter( 'woocommerce_product_single_add_to_cart_text', 'woo_custom_cart_button_text' ); function woo_custom_cart_button_text() { global $woocommerce; foreach( $woocommerce->cart->get_cart() as $cart_item ) { if( get_the_ID() == $cart_item['product_id'] ) { return __( 'Já está no carrinho', 'woocommerce' ); } } return __( 'Adicionar ao carrinho', 'woocommerce' ); }

Isso proporciona um feedback claro e torna o processo de compra mais tranquilo.

Simplifique a precificação variável de produtos

O WooCommerce normalmente exibe intervalos como $100–$200 para produtos com preços variáveis. Se você preferir mostrar apenas o preço mínimo com um rótulo "A partir de", use este trecho de código:

add_filter( 'woocommerce_variable_price_html', 'variation_price_format_min', 9999, 2 ); function variation_price_format_min( $price, $product ) { $prices = $product->get_variation_prices( true ); $min_price = current( $prices['price'] ); return sprintf( __( 'A partir de %1$s', 'woocommerce' ), wc_price( $min_price ) ); }

Isso estabelece expectativas mais claras e pode incentivar mais cliques.

Otimização do carrinho e do checkout que reduz o atrito: trechos de código do WooCommerce

Pequenas melhorias no carrinho e no processo de finalização da compra podem aumentar as conversões rapidamente. Esses trechos de código simplificam as etapas, organizam os formulários e mantêm os compradores focados.

Redirecionar para a página de finalização da compra após adicionar ao carrinho

Use para funis de vendas de produto único ou promoções relâmpago onde a velocidade é importante. Adicione ao arquivo functions.php do tema filho ou a um plugin de snippets.

add_filter( 'woocommerce_add_to_cart_redirect', 'seahawk_redirect_to_checkout' ); function seahawk_redirect_to_checkout( $url ) { return wc_get_checkout_url(); }

Coloque o e-mail em primeiro lugar na finalização da compra

Colete os e-mails antecipadamente para agilizar os processos de recuperação e suporte. Quanto menor o número de e-mails, maior a prioridade.

add_filter( 'woocommerce_checkout_fields', 'seahawk_email_first' ); function seahawk_email_first( $fields ) { if ( isset( $fields['billing']['billing_email'] ) ) { $fields['billing']['billing_email']['priority'] = 4; } return $fields; }

Tornar o uso do telefone opcional ou obrigatório, de acordo com o mercado

Atender às necessidades de conformidade e suporte de cada região.

add_filter( 'woocommerce_billing_fields', 'seahawk_phone_requirement' ); function seahawk_phone_requirement( $address_fields ) { // Defina como verdadeiro se o seu mercado exigir telefone $address_fields['billing_phone']['required'] = false; return $address_fields; }

Reordene ou organize os campos de finalização da compra

Mantenha os formulários curtos e lógicos. Exemplo: mova o primeiro e o último nome para cima.

add_filter( 'woocommerce_checkout_fields', 'seahawk_reorder_fields' ); function seahawk_reorder_fields( $fields ) { if ( isset( $fields['billing']['billing_first_name'] ) ) { $fields['billing']['billing_first_name']['priority'] = 6; } if ( isset( $fields['billing']['billing_last_name'] ) ) { $fields['billing']['billing_last_name']['priority'] = 8; } return $fields; }

Adicione caixas de seleção personalizadas acima dos termos

Utilizado para consentimento ou confirmações adicionais. Inclui validação.

add_action( 'woocommerce_checkout_before_terms_and_conditions', 'seahawk_checkout_checkboxes' ); function seahawk_checkout_checkboxes() { ?><p class="form-row custom-checkboxes"> <label class="woocommerce-form__label checkbox"><input type="checkbox" class="woocommerce-form__input input-checkbox" name="seahawk_consent_one"><span>Concordo em receber atualizações do pedido por e-mail</span> <span class="required">*</span></label> <label class="woocommerce-form__label checkbox"><input type="checkbox" class="woocommerce-form__input input-checkbox" name="seahawk_consent_two"><span>Confirmo que meu endereço de entrega está correto</span> <span class="required">.</span></label></p>

Limitar o número de caracteres da nota do pedido

Mantenha as anotações legíveis para as equipes de atendimento.

add_filter( 'woocommerce_checkout_fields', 'seahawk_limit_order_notes' ); function seahawk_limit_order_notes( $fields ) { if ( isset( $fields['order']['order_comments'] ) ) { $fields['order']['order_comments']['maxlength'] = 180; $fields['order']['order_comments']['placeholder'] = __( 'Adicione uma breve observação de entrega. Máximo de 180 caracteres.' ); } return $fields; }

Exibir aviso de envio por país

Exibir uma mensagem dinâmica quando um país específico for selecionado.

add_action( 'woocommerce_before_checkout_billing_form', 'seahawk_country_notice_container' ); function seahawk_country_notice_container() { echo '<div class="shipping-notice woocommerce-info" style="display:none"> Por favor, aguarde de 5 a 10 dias úteis para a entrega após o processamento.</div> '; } add_action( 'woocommerce_after_checkout_form', 'seahawk_country_notice_script' ); function seahawk_country_notice_script() { ?><script> document.addEventListener('DOMContentLoaded', function() { var selectEl = document.querySelector('select#billing_country'); var noticeEl = document.querySelector('.shipping-notice'); var targetCountry = 'FR'; if (!selectEl || !noticeEl) return; function toggleNotice() { if (selectEl.value === targetCountry) { noticeEl.style.display = 'block'; } else { noticeEl.style.display = 'none'; } } toggleNotice(); selectEl.addEventListener('change', toggleNotice); }); </script>

Alterar o campo de foco automático no checkout

Para uma digitação mais rápida, priorize o campo de e-mail.

add_filter( 'woocommerce_checkout_fields', 'seahawk_change_autofocus' ); function seahawk_change_autofocus( $fields ) { if ( isset( $fields['billing']['billing_first_name'] ) ) { $fields['billing']['billing_first_name']['autofocus'] = false; } if ( isset( $fields['billing']['billing_email'] ) ) { $fields['billing']['billing_email']['autofocus'] = true; } return $fields; }

Adicione um texto útil próximo ao botão "Finalizar Pedido"

Utilize para recados de privacidade ou lembretes de entrega.

add_action( 'woocommerce_review_order_after_submit', 'seahawk_message_below_checkout_button' ); function seahawk_message_below_checkout_button() { echo '<p> <small>Ao efetuar este pedido, você confirma que as informações fornecidas são corretas.</small></p> '; }

Redirecionar casos extremos e validar mais cedo

Mantenha os sinais claros antes do pagamento. Exemplo ⟶ exigir campos de criação de conta.

add_filter( 'woocommerce_checkout_fields', 'seahawk_require_account_fields' ); function seahawk_require_account_fields( $fields ) { if ( isset( $fields['account']['account_username'] ) ) { $fields['account']['account_username']['required'] = true; } if ( isset( $fields['account']['account_password'] ) ) { $fields['account']['account_password']['required'] = true; } if ( isset( $fields['account']['account_password-2'] ) ) { $fields['account']['account_password-2']['required'] = true; } return $fields; }

Lógica de envio que parece inteligente: trechos de código do WooCommerce

Regras de frete inteligentes reduzem a sobrecarga de opções e tornam os custos previsíveis. Esses trechos simplificam as decisões sem ocultar opções úteis, como a retirada local.

Ocultar métodos de pagamento quando o frete grátis estiver disponível

Mostre apenas o frete grátis quando ele for aplicável. Mantenha as taxas visíveis caso o frete grátis não esteja disponível.

add_filter( 'woocommerce_package_rates', 'seahawk_only_free_shipping_when_available', 10, 2 ); function seahawk_only_free_shipping_when_available( $rates, $package ) { $new_rates = array(); foreach ( $rates as $rate_id => $rate ) { if ( 'free_shipping' === $rate->method_id ) { $new_rates[ $rate_id ] = $rate; break; } } if ( ! empty( $new_rates ) ) { // Preservar a opção de retirada local, se existir foreach ( $rates as $rate_id => $rate ) { if ( 'local_pickup' === $rate->method_id ) { $new_rates[ $rate_id ] = $rate; break; } } return $new_rates; } return $rates; }

Por que isso ajuda

  • Elimina a fadiga de decisão quando o frete grátis se aplica.
  • Mantém a opção de retirada local para os clientes que a preferem.
  • Reduz o abandono de carrinho em pedidos com preço sensível.

Adicione uma mensagem simples sobre o valor mínimo para frete grátis

Se você usar uma regra de subtotal, mostre um aviso amigável para que os clientes saibam o quão perto estão de completar o total.

add_action( 'woocommerce_before_cart', 'seahawk_free_shipping_threshold_notice' ); add_action( 'woocommerce_before_checkout_form', 'seahawk_free_shipping_threshold_notice' ); function seahawk_free_shipping_threshold_notice() { $threshold = 75; // Defina o valor mínimo para frete grátis $subtotal = WC()->cart ? WC()->cart->get_displayed_subtotal() : 0; if ( $subtotal && $subtotal < $threshold ) { $remaining = wc_price( $threshold - $subtotal ); wc_print_notice( 'Adicione ' . $remaining . ' a mais para obter frete grátis.', 'notice' ); } }

Pontas

  • Ajuste esse limite às suas configurações do WooCommerce para que as mensagens permaneçam precisas.
  • Faça testes com cupons e impostos para garantir que os cálculos reflitam sua política.

Controle de preços e moedas: trechos de código do WooCommerce

Preços claros e objetivos geram confiança. Esses trechos de código adicionam suporte a moedas regionais e melhoram a aparência dos preços em toda a sua loja.

Adicione uma moeda e um símbolo personalizados

Útil para marcas regionais ou lojas de teste. Adicione ao arquivo functions.php do tema filho ou a um plugin de snippets.

// Registre um código de moeda personalizado add_filter( 'woocommerce_currencies', 'seahawk_add_currency' ); function seahawk_add_currency( $currencies ) { $currencies['ABC'] = __( 'Moeda de Exemplo', 'woocommerce' ); // Substitua ABC e nome return $currencies; } // Associe um símbolo à sua moeda personalizada add_filter( 'woocommerce_currency_symbol', 'seahawk_add_currency_symbol', 10, 2 ); function seahawk_add_currency_symbol( $symbol, $currency ) { if ( 'ABC' === $currency ) { $symbol = '¤'; // Substitua pelo seu símbolo } return $symbol; }

Onde usar

  • Configurações do WooCommerce ⟶ Geral ⟶ Opções de moeda.
  • Selecione sua nova moeda após adicionar o código.

Elimine os zeros desnecessários do preço

Uma apresentação de preços mais clara melhora a legibilidade.

adicionar_filtro( 'woocommerce_price_trim_zeros', '__return_true' );

O que faz

  • Mostra 19 em vez de 19,00.
  • Mantém decimais apenas quando necessário.

Opcional ⟶ Controle o formato de preço por localidade

Altere os separadores de milhares e decimais para mercados específicos.

add_filter( 'wc_price_args', 'seahawk_price_args_by_locale' ); function seahawk_price_args_by_locale( $args ) { // Exemplo para o estilo da UE if ( is_user_logged_in() && function_exists( 'get_user_locale' ) && 'fr_FR' === get_user_locale() ) { $args['decimal_separator'] = ','; $args['thousand_separator'] = ' '; } return $args; }

Pagamentos, e-mails e processamento de pedidos: trechos de código do WooCommerce

Aprimore a comunicação e o controle com alguns trechos de código confiáveis. Eles ajudam sua equipe a visualizar atualizações importantes, adicionar dados de pedidos a e-mails, pausar o checkout durante a manutenção e bloquear pedidos de risco.

Adicionar um destinatário de e-mail adicional para pedidos concluídos

Entrar em contato com o suporte ou a contabilidade quando um pedido for concluído.

add_filter( 'woocommerce_email_recipient_customer_completed_order', 'seahawk_extra_completed_order_recipient', 10, 2 ); function seahawk_extra_completed_order_recipient( $recipient, $order ) { $extra = 'ops@example.com'; // Substitua pelo seu endereço if ( $recipient && strpos( $recipient, $extra ) === false ) { $recipient .= ', ' . $extra; } return $recipient; }

Dica

  • Para cópia oculta (BCC), utilize o cabeçalho woocommerce_email_headers e adicione um cabeçalho BCC.

Adicionar metadados personalizados de pedidos a e-mails transacionais

Exibir um código de rastreamento ou qualquer campo personalizado salvo nos e-mails para clientes.

// 1) Salvar um campo de metadados de pedido personalizado para fins de demonstração add_action( 'woocommerce_checkout_update_order_meta', 'seahawk_save_tracking_meta' ); function seahawk_save_tracking_meta( $order_id ) { // Substitua pela sua própria lógica que salva um valor de rastreamento real if ( ! metadata_exists( 'post', $order_id, '_tracking_code' ) ) { update_post_meta( $order_id, '_tracking_code', 'ABC123' ); } } // 2) Injetar esses metadados nos e-mails add_filter( 'woocommerce_email_order_meta_fields', 'seahawk_add_tracking_to_emails', 10, 3 ); function seahawk_add_tracking_to_emails( $fields, $sent_to_admin, $order ) { $tracking = $order->get_meta( '_tracking_code' ); if ( $tracking ) { $fields['tracking_code'] = array( 'label' => __( 'Código de Rastreamento', 'woocommerce' ), 'value' => esc_html( $tracking ), ); } return $fields; }

Onde aparece

  • Pedido de processamento do cliente
  • Pedido finalizado pelo cliente
  • Novo pedido do administrador

Negar finalização da compra se o usuário tiver pedidos pendentes

Útil para controle de fraudes ou fluxos de trabalho especiais. Bloqueia a finalização da compra quando o e-mail do cliente correspondente possui pedidos pendentes.

add_action( 'woocommerce_after_checkout_validation', 'seahawk_block_when_pending_orders', 10, 2 ); function seahawk_block_when_pending_orders( $data, $errors ) { if ( is_user_logged_in() ) { $customer_id = get_current_user_id(); $args = array( 'type' => 'shop_order', 'status' => array( 'wc-pending' ), 'limit' => 1, 'customer_id' => $customer_id, 'return' => 'ids', ); $pending = wc_get_orders( $args ); if ( ! empty( $pending ) ) { $errors->add( 'seahawk_pending_block', __( 'Você tem um pedido pendente. Por favor, conclua o pagamento ou cancele-o antes de fazer um novo pedido.' ) ); } return; } // Finalização de compra como visitante ⟶ correspondência por e-mail de cobrança $email = isset( $data['billing_email'] ) ? sanitize_email( $data['billing_email'] ) : ''; if ( $email ) { $args = array( 'type' => 'shop_order', 'status' => array( 'wc-pending' ), 'limit' => 1, 'billing_email' => $email, 'return' => 'ids', ); $pending = wc_get_orders( $args ); if ( ! empty( $pending ) ) { $errors->add( 'seahawk_pending_block_guest', __( 'Você tem um pedido pendente. Por favor, conclua o pagamento ou cancele-o antes de fazer um novo pedido.' ) ); } } }

Notas

  • Ajuste a mensagem para que corresponda ao seu fluxo de trabalho de suporte.
  • Considere permitir o pagamento em dinheiro na entrega ou transferência bancária, se necessário.

Ative o Modo Férias ou o Modo Pausa

Mantenha o catálogo visível enquanto desativa o carrinho e o checkout. Ideal para períodos de manutenção ou auditorias de estoque.

add_action( 'init', 'seahawk_holiday_mode' ); function seahawk_holiday_mode() { if ( ! apply_filters( 'seahawk_holiday_mode_enabled', false ) ) { return; } remove_action( 'woocommerce_after_shop_loop_item', 'woocommerce_template_loop_add_to_cart', 10 ); remove_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_add_to_cart', 30 ); remove_action( 'woocommerce_proceed_to_checkout', 'woocommerce_button_proceed_to_checkout', 20 ); remove_action( 'woocommerce_checkout_order_review', 'woocommerce_checkout_payment', 20 ); add_action( 'woocommerce_before_main_content', 'seahawk_shop_disabled_notice', 5 ); add_action( 'woocommerce_before_cart', 'seahawk_shop_disabled_notice', 5 ); add_action( 'woocommerce_before_checkout_form', 'seahawk_shop_disabled_notice', 5 ); } function seahawk_shop_disabled_notice() { wc_print_notice( __( 'Nossa loja está temporariamente indisponível. Volte em breve.' ), 'error' ); }

Como ativar/desativar

  • Defina o filtro como verdadeiro em um pequeno trecho de código auxiliar ou por meio de um plugin específico do site:
adicionar_filtro( 'seahawk_holiday_mode_enabled', '__return_true' );

Opcional ⟶ Alterar nome e endereço de e-mail

Alinhe o remetente do e-mail com a identidade da sua marca.

add_filter( 'wp_mail_from_name', 'seahawk_wp_mail_from_name', 99 ); function seahawk_wp_mail_from_name( $name ) { $wc_name = get_option( 'woocommerce_email_from_name' ); return $wc_name ? html_entity_decode( $wc_name ) : $name; } add_filter( 'wp_mail_from', 'seahawk_wp_mail_from', 99 ); function seahawk_wp_mail_from( $email ) { $wc_email = get_option( 'woocommerce_email_from' ); return $wc_email ? sanitize_email( $wc_email ) : $email; }

Onde configurar

  • WooCommerce ⟶ Configurações ⟶ E-mails ⟶ Nome e endereço do remetente.

Regras de conta e acesso do cliente: trechos de código do WooCommerce

Os dados da conta fornecem suporte, histórico de pedidos e conteúdo restrito. Use esses trechos de código para controlar os campos da conta e desbloquear recursos para compradores anteriores.

Torne os campos da conta obrigatórios no checkout

Exija nome de usuário e senha quando desejar que os clientes criem uma conta no momento do pagamento.

add_filter( 'woocommerce_checkout_fields', 'seahawk_require_account_on_checkout' ); function seahawk_require_account_on_checkout( $fields ) { if ( isset( $fields['account']['account_username'] ) ) { $fields['account']['account_username']['required'] = true; } if ( isset( $fields['account']['account_password'] ) ) { $fields['account']['account_password']['required'] = true; } if ( isset( $fields['account']['account_password-2'] ) ) { $fields['account']['account_password-2']['required'] = true; } return $fields; }

Bom para

  • Lojas para membros.
  • Suporte para reordenação e endereços salvos.
  • Integração pós-compra.

Verificar se um usuário já comprou produtos específicos

Útil para desbloquear downloads, limitar compras repetidas ou exibir ofertas de atualização.

function seahawk_user_bought_any( $product_ids = array(), $user_id = 0 ) { if ( empty( $product_ids ) ) return false; if ( ! $user_id && is_user_logged_in() ) { $user_id = get_current_user_id(); } if ( ! $user_id ) return false; $orders = wc_get_orders( array( 'type' => 'shop_order', 'status' => array( 'wc-completed', 'wc-processing' ), 'limit' => -1, 'customer_id' => $user_id, 'return' => 'ids', ) ); if ( empty( $orders ) ) return false; foreach ( $orders as $order_id ) { $order = wc_get_order( $order_id ); foreach ( $order->get_items() as $item ) { $pid = $item->get_product_id(); $vid = $item->get_variation_id(); if ( in_array( $pid, $product_ids, true ) || in_array( $vid, $product_ids, true ) ) { return true; } } } return false; }

Como usar em um modelo

// Exemplo em um modelo de produto ou shortcode $unlock_for = array( 21, 67 ); // IDs de produto que concedem acesso if ( seahawk_user_bought_any( $unlock_for ) ) { echo '<p> Obrigado pela sua compra. Seu conteúdo bônus foi desbloqueado.</p> '; } else { echo '<p> Adquira o curso para desbloquear aulas bônus.</p> '; }

Ideias

  • Exibir uma aba personalizada apenas para compradores anteriores.
  • Substitua "Adicionar ao carrinho" por um link para download.
  • Ofereça melhorias com desconto aos proprietários anteriores.

Disciplina de Busca e Filtragem: Trechos de Código do WooCommerce

Controle o que os compradores veem nos resultados de pesquisa e nos modelos. Resultados limpos ajudam os usuários a encontrar os produtos certos mais rapidamente e mantêm as categorias privadas ocultas.

Ocultar uma categoria da pesquisa no site

Mantenha as categorias de aluguel, atacado ou rascunhos fora dos resultados de pesquisa.

add_action( 'pre_get_posts', 'seahawk_hide_category_from_search' ); function seahawk_hide_category_from_search( $query ) { if ( is_admin() || ! $query->is_main_query() || ! $query->is_search() ) { return; } $tax_query = array( array( 'taxonomy' => 'product_cat', 'field' => 'slug', 'terms' => array( 'rentals' ), ​​// Substitua pelo slug da sua categoria 'operator' => 'NOT IN', ), ); $query->set( 'post_type', array( 'product' ) ); $query->set( 'tax_query', $tax_query ); }

Casos de uso

  • Ocultar itens disponíveis apenas para atacado.
  • Exclua as versões sazonais até o lançamento.
  • Mantenha os pacotes B2B fora das buscas de varejo.

Verificações rápidas de categoria ou tag em modelos

Carregar blocos, emblemas ou mensagens condicionalmente com base na categoria ou etiqueta.

// Em um loop de produto ou modelo único if ( has_term( 'sneakers', 'product_cat', get_the_ID() ) ) { echo ' <span class="badge">Edição Limitada</span> '; } if ( has_term( array( 'gift', 'bundle' ), 'product_tag', get_the_ID() ) ) { echo '<p> Envio em 24 horas</p> '; }

Ideias

  • Exiba um selo "Pronto para Presente" nos itens etiquetados.
  • Adicione tabelas de tamanhos apenas às categorias de vestuário.
  • Exiba as instruções de segurança nos produtos cosméticos.

Excluir categorias do widget de categorias de produtos

Mantenha as barras laterais focadas no que você deseja que os usuários naveguem.

add_filter( 'woocommerce_product_categories_widget_args', 'seahawk_widget_exclude_cats' ); function seahawk_widget_exclude_cats( $args ) { $args['exclude'] = array( 16, 25 ); // Substituir pelos IDs das categorias return $args; }

Dica

  • Encontre os IDs em Produtos ⟶ Categorias ⟶ passe o cursor sobre o nome para ver o ID no URL.

Melhorias na experiência do administrador: trechos de código do WooCommerce

Gerir uma loja WooCommerce significa viver no painel de administração do WordPress. Estes trechos de código facilitam o seu trabalho diário, destacando detalhes importantes e alinhando os emails enviados com a sua marca.

Adicionar colunas personalizadas à lista de pedidos

Exiba dados adicionais, como números de série ou códigos de rastreamento, diretamente na lista de pedidos.

// Adicionar uma nova coluna add_filter( 'manage_edit-shop_order_columns', 'seahawk_edit_shop_order_columns' ); function seahawk_edit_shop_order_columns( $columns ) { $columns['serial'] = __( 'Número de Série', 'woocommerce' ); return $columns; } // Preencher a coluna com dados add_action( 'manage_shop_order_posts_custom_column', 'seahawk_shop_order_column_content', 10, 2 ); function seahawk_shop_order_column_content( $column, $post_id ) { if ( 'serial' === $column ) { $serial = get_post_meta( $post_id, '_order_serial_number', true ); if ( $serial ) { echo esc_html( $serial ); } else { echo '—'; } } }

Por que isso ajuda

  • Economiza cliques ao exibir os dados antecipadamente.
  • Reduz o tempo gasto na abertura de cada pedido.

Adicione produtos ou SKUs vinculados a tipos de postagem personalizados

Se você executar configurações de produto personalizadas, poderá estender ainda mais as colunas.

add_filter( 'manage_edit-product_columns', 'seahawk_edit_product_columns' ); function seahawk_edit_product_columns( $columns ) { $columns['sku'] = __( 'SKU', 'woocommerce' ); return $columns; } add_action( 'manage_product_posts_custom_column', 'seahawk_product_column_content', 10, 2 ); function seahawk_product_column_content( $column, $post_id ) { if ( 'sku' === $column ) { $product = wc_get_product( $post_id ); echo $product ? $product->get_sku() : ''; } }

Caso de uso

  • Veja os códigos SKU dos produtos num relance.
  • Mantenha os gerentes de catálogo eficientes.

Alinhe o nome e o endereço do remetente do e-mail com a marca

As configurações padrão do WordPress podem parecer pouco profissionais. Corrija isso importando os valores das configurações do WooCommerce.

add_filter( 'wp_mail_from_name', 'seahawk_custom_from_name', 99 ); function seahawk_custom_from_name( $name ) { $wc_name = get_option( 'woocommerce_email_from_name' ); return $wc_name ? html_entity_decode( $wc_name ) : $name; } add_filter( 'wp_mail_from', 'seahawk_custom_from_address', 99 ); function seahawk_custom_from_address( $email ) { $wc_email = get_option( 'woocommerce_email_from' ); return $wc_email ? sanitize_email( $wc_email ) : $email; }

Onde definir os valores

  • WooCommerce ⟶ Configurações ⟶ E-mails ⟶ Nome do remetente e Endereço do remetente.

Ferramentas de desempenho e layout: trechos de código do WooCommerce

Páginas mais rápidas e layouts claros aumentam as conversões. Esses trechos de código ajudam seu carrinho a ter uma boa aparência em dispositivos móveis e tornam as consultas de produtos em destaque mais eficientes.

Torne a mesa de carrinho compatível com dispositivos móveis

Transforme a tabela do carrinho em linhas empilhadas em telas pequenas. Adicione este CSS à folha de estilo do seu tema filho ou a um painel de CSS do personalizador.

/* Tabela de carrinho do WooCommerce otimizada para dispositivos móveis */ @media screen and (max-width: 700px) { .woocommerce table.shop_table, .woocommerce table.shop_table thead, .woocommerce table.shop_table tbody, .woocommerce table.shop_table th, .woocommerce table.shop_table td, .woocommerce table.shop_table tr { display: block; } .woocommerce table.shop_table thead tr { position: absolute; top: -9999px; left: -9999px; } .woocommerce table.shop_table tr { margin-bottom: 12px; border: 1px solid #e5e7eb; border-radius: 8px; overflow: hidden; } .woocommerce table.shop_table td { position: relative; padding-left: 50% !important; border: none; border-bottom: 1px solid #f1f5f9; .woocommerce table.shop_table td:last-child { border-bottom: none; } .woocommerce table.shop_table td::before { position: absolute; top: 10px; left: 10px; width: 45%; white-space: nowrap; font-weight: 600; content: attr(data-title); } }

Como funciona

  • Utiliza o atributo data-title que o WooCommerce adiciona às células da tabela.
  • Oculta o cabeçalho e transforma cada linha em um cartão.
  • Melhora a legibilidade em celulares sem a necessidade de um plugin.

Use um tipo de dado transitório para os IDs dos produtos em destaque

Armazenar em cache uma lista de produtos em destaque reduz as consultas repetidas. Configure-a uma vez e reutilize-a em vários modelos.

function seahawk_get_featured_product_ids( $cache_key = 'seahawk_featured_ids', $ttl = HOUR_IN_SECONDS ) { $ids = get_transient( $cache_key ); if ( false !== $ids ) { return $ids; } $featured_query = new WP_Query( array( 'post_type' => 'product', 'posts_per_page' => -1, 'meta_query' => array( array( 'key' => '_featured', 'value' => 'yes', 'compare' => '=', ), ), 'fields' => 'ids', 'no_found_rows' => true, ) ); $ids = $featured_query->posts; set_transient( $cache_key, $ids, $ttl ); return $ids; } // Exemplo de uso ⟶ construir uma mini grade add_shortcode( 'seahawk_featured_grid', function( $atts ) { $ids = seahawk_get_featured_product_ids(); if ( empty( $ids ) ) return '<p> Nenhum produto em destaque encontrado.</p> '; $out = '<ul class="featured-grid"> '; foreach ( $ids as $pid ) { $out .= '<li> <a href="' . esc_url( get_permalink( $pid ) ) . '">' . esc_html( get_the_title( $pid ) ) . '</a></li> '; } $out .= '</ul> '; retornar $out; } );

Pontas

  • Limpe o evento transitório ao ativar/desativar o status de destaque.
  • Aproveite as atualizações do produto para limpar o cache.
adicionar_ação( 'salvar_produto_postagem', função( $id_postagem ) { excluir_transiente( 'seahawk_destaques_ids' ); } );

Detalhes de Conformidade e Localização: Trechos de Código do WooCommerce

Pequenos ajustes em formulários e idioma tornam o processo de finalização da compra mais rápido e preciso para diferentes regiões. Esses trechos de código ajudam você a localizar o site sem precisar de plugins adicionais.

Remova o campo Estado onde não for necessário

Alguns países não usam estados. Ocultar o campo torna o formulário mais curto e reduz a confusão.

add_filter( 'woocommerce_default_address_fields', 'seahawk_remove_state_field' ); function seahawk_remove_state_field( $fields ) { if ( isset( $fields['state'] ) ) { $fields['state']['required'] = false; $fields['state']['hidden'] = true; } return $fields; }

Dica

  • Use lógica condicional se quiser ocultar o conteúdo apenas para países específicos.

Adicionar um país personalizado à lista

Útil para ambientes de teste ou regiões especiais.

add_filter( 'woocommerce_countries', 'seahawk_add_custom_country' ); function seahawk_add_custom_country( $countries ) { $countries['XX'] = __( 'Exampleland', 'woocommerce' ); // Substitui o código e o nome return $countries; } add_filter( 'woocommerce_continents', 'seahawk_map_custom_country' ); function seahawk_map_custom_country( $continents ) { // Adiciona o código do país a um continente if ( isset( $continents['EU']['countries'] ) ) { $continents['EU']['countries'][] = 'XX'; } return $continents; }

Onde aparece

  • Configurações do WooCommerce ⟶ Geral ⟶ Locais de venda.
  • Menus suspensos de país nas páginas de finalização da compra e de conta.

Traduza microtextos rapidamente com o gettext

Corrija erros de digitação ou altere a redação em toda a loja sem editar os modelos.

add_filter( 'gettext', 'seahawk_quick_translate', 10, 3 ); function seahawk_quick_translate( $translated, $original, $domain ) { // Exemplo ⟶ alterar “Escolha uma opção” para “Selecionar” if ( 'Escolha uma opção' === $original && 'woocommerce' === $domain ) { return 'Selecionar'; } // Exemplo ⟶ renomear “Adicionar ao carrinho” para “Adicionar à sacola” if ( 'Adicionar ao carrinho' === $original && 'woocommerce' === $domain ) { return 'Adicionar à sacola'; } return $translated; }

Notas

  • A string original deve ser exatamente igual.
  • Mantenha as alterações em consonância com a voz da sua marca.

Opcional ⟶ Localize os separadores de preço por localidade

Ajude os usuários a ler os preços em um formato familiar.

add_filter( 'wc_price_args', 'seahawk_price_format_by_locale' ); function seahawk_price_format_by_locale( $args ) { if ( function_exists( 'get_user_locale' ) && 'fr_FR' === get_user_locale() ) { $args['decimal_separator'] = ','; $args['thousand_separator'] = ' '; } return $args; }

Teste

  • Total do carrinho.
  • Cupons e impostos.
  • Encomende e-mails.

Considerações finais

Agora você tem uma biblioteca de trechos de código WooCommerce que abrangem a exibição do catálogo, o fluxo de finalização da compra, a lógica de envio, a precificação, a localização e a facilidade de uso administrativo. Usados ​​em conjunto, eles oferecem controle sem a necessidade de plugins pesados ​​e mantêm seu site WordPress enxuto.

Antes de implementá-las, tenha em mente estas últimas boas práticas:

  • Sempre teste em ambiente de teste antes de aplicar trechos de código a um site em produção.
  • Mantenha backups do seu arquivo functions.php ou da exportação do plugin de snippets.
  • Adicione comentários a cada trecho de código para que futuros desenvolvedores entendam a função de cada um.
  • Analisar atualizações do WooCommerce ⟶ alguns trechos de código podem precisar de ajustes ao longo do tempo.

Se gerenciadas com cuidado, essas pequenas funções podem evitar dezenas de instalações de plugins e tornar sua loja online mais rápida e fácil de administrar.

Perguntas frequentes sobre trechos de código do WooCommerce

Qual é a maneira mais segura de adicionar snippets do WooCommerce?

A maneira mais segura é usar o arquivo functions.php de um tema filho ou um plugin de trechos de código. Isso garante que seu código permaneça intacto durante as atualizações do tema e possa ser gerenciado sem a necessidade de editar diretamente os arquivos do tema.

Devo usar o functions.php ou um plugin de snippets?

Se você deseja controle total, o functions.php funciona. Para maior flexibilidade, especialmente em sites de clientes, um plugin como o Code Snippets Pro é mais fácil de gerenciar e oferece importação e exportação automáticas.

Posso danificar meu site com um snippet ruim?

Sim. Um único erro de PHP pode causar um erro fatal. Sempre teste os trechos de código em um ambiente de teste antes de adicioná-los à loja em produção.

Os snippets deixam o WooCommerce mais lento?

Não, não se forem escritos corretamente. Na verdade, os snippets muitas vezes substituem os plugins, o que reduz o tamanho do código e acelera sua loja.

Como faço para testar os trechos de código depois de adicioná-los?

Faça o teste como visitante e como usuário logado. Navegue pelo carrinho, pela página de finalização da compra e pelos campos de finalização da compra da conta. Confirme se o frete, o método de pagamento e os totais ainda funcionam corretamente.

Posts relacionados

Preços encantadores

Preços Adoráveis ​​2026: Comparação entre Planos Gratuitos e Pagos

A Lovable oferece um plano gratuito com projetos limitados e planos pagos a partir de US$ 25 por projeto

ROI de Parcerias Estratégicas: Um Guia para Agências WordPress em 2026

ROI de Parcerias Estratégicas: Um Guia para Agências WordPress em 2026

Gerir uma agência WordPress é emocionante. Mas expandi-la? Isso é um desafio completamente diferente. Você

Como adicionar tabelas de tamanhos no WooCommerce

Como adicionar tabelas de tamanhos no WooCommerce: Guia passo a passo para 2026

Se você administra uma loja online que vende roupas, calçados ou acessórios, você já sabe

Comece a usar o Seahawk

Cadastre-se em nosso aplicativo para ver nossos preços e obter descontos.