Domine estes ganchos e filtros do WooCommerce e personalize as funcionalidades do seu site de comércio eletrónico.

Leitura de 2 minutos
2026-03-12
2026-06-04
2,549
Eu recebo uma comissão quando você faz compras através dos links abaixo, sem custo adicional para você.

O WooCommerce, como o plugin de comércio eletrônico mais poderoso da ecossistema do WordPress, sua verdadeira força não reside apenas nas funcionalidades prontas para uso, mas também na sua arquitetura altamente extensível. O núcleo dessa arquitetura é o sistema de “ganchos” (Hooks) e “filtros” (Filters) baseado na API de plugins do WordPress. Ao entender e utilizar esse sistema, os desenvolvedores podem acessar os processos internos do WooCommerce e, sem modificar o código principal, adicionar, modificar ou remover funcionalidades de forma precisa, criando soluções de comércio eletrônico altamente personalizadas.

Noções básicas sobre hooks e filtros no WooCommerce

Antes de nos aprofundarmos em exemplos concretos, é necessário esclarecer dois conceitos fundamentais: os Ganchos de Ação (Action Hooks) e os Ganchos de Filtro (Filter Hooks). Eles são a base de toda a personalização no WooCommerce.

add_action() É usado para ser montado em um “gancho de ação” (action hook). Um gancho de ação é acionado em um momento específico da execução do código, permitindo que você execute o seu próprio código nesse momento. Por exemplo, adicionar um banner após a página do carrinho de compras ser carregada ou enviar um e-mail para o administrador após a conclusão do processo de pagamento. Não espera um valor de retorno; seu objetivo é simplesmente “fazer algo”.

Leitura recomendada Desenvolvimento de plugins do WordPress: construir extensões poderosas para websites do zero.

add_filter() É usado para ser montado em um gancho de filtro. Os ganchos de filtro permitem que você “modifique” os dados que estão sendo processados. Por exemplo, alterar a forma como o preço de um produto é calculado, modificar o texto das etiquetas de frete ou ajustar as regras de geração dos números de pedido. Eles esperam que você retorne um valor modificado.

Hospedagem para sites WordPress da UltraHost
Garantia de reembolso em 30 dias, largura de banda ilimitada e banco de dados, proteção contra DDoS gratuita; desconto de 50% na compra de 3 anos (planos de 4 TB a 10 TB).

Um método simples de memorização é: “Ação é a execução; filtro é a modificação.” Quase todas as personalizações no WooCommerce envolvem o uso desses dois conceitos.

Cenários de aplicação para ganchos de ações principais (Core Action Hooks)

Os ganchos de ação (action hooks) estão distribuídos por todo o ciclo de vida do WooCommerce, desde a exibição dos produtos até a conclusão do pedido. Ao dominar alguns desses ganchos-chave, você poderá inserir lógica personalizada nos pontos críticos da jornada do usuário.

Adicionar conteúdo personalizado à página de detalhes do produto

woocommerce_before_add_to_cart_form e woocommerce_after_add_to_cart_form São dois ganchos (hooks) que são acionados antes e depois do formulário do botão “Adicionar ao carrinho de compras”. Suponha que você queira exibir uma mensagem de alerta antes do formulário de um produto complexo (como um produto que pode ter várias opções ou configurações), você pode proceder da seguinte maneira:

add_action( 'woocommerce_before_add_to_cart_form', 'custom_before_add_to_cart_message' );
function custom_before_add_to_cart_message() {
    global $product;
    if ( $product->is_type( 'variable' ) ) {
        echo '<p class="custom-note">Por favor, selecione primeiro as propriedades de especificação desejadas.</p>';
    }
}

Inserir etapas adicionais no processo de pagamento

woocommerce_before_checkout_form e woocommerce_after_checkout_form Isso permite que você adicione conteúdo antes e depois de todo o formulário de pagamento. woocommerce_checkout_before_customer_details e woocommerce_checkout_after_customer_details Portanto, a posição é mais precisa, localizada antes e depois do bloco de informações do cliente. Esses “ganchos” (hooks) são frequentemente utilizados para exibir políticas de entrega, descrições de cupons ou emblemas de confiança.

Leitura recomendada Guia de desenvolvimento de plugins para o WooCommerce: Criando funcionalidades personalizadas para lojas virtuais do zero

Cenários de aplicação dos filtros principais

Os filtros permitem que você ajuste com precisão os dados e o texto exibidos pelo WooCommerce, sendo uma ferramenta essencial para implementar regras de negócios e personalizações na apresentação dos conteúdos.

Modificar o formato de exibição dos preços

woocommerce_get_price_html Os filtros são utilizados para filtrar a saída em HTML dos preços dos produtos. Se você deseja adicionar a frase “(Em promoção)” após o preço de todos os produtos em promoção, pode fazer isso da seguinte maneira:

add_filter( 'woocommerce_get_price_html', 'custom_price_suffix', 10, 2 );
function custom_price_suffix( $price, $product ) {
    if ( $product-&gt;is_on_sale() ) {
        $price .= ' <span class="sale-badge">(Em promoção)</span>';
    }
    return $price;
}

Campos personalizados do carrinho de compras e do processo de pagamento

woocommerce_checkout_fields É um filtro extremamente poderoso que permite que você adicione, exclua, modifique ou reordene todos os campos na página de pagamento. Por exemplo, se você quiser tornar o campo “Nome da Empresa” obrigatório e alterar a legenda do campo “Endereço 2”:

hospedagem compartilhada da hosting.com
Alto desempenho com CPUs AMD EPYC, armazenamento SSD NVMe e LiteSpeed, suporte interno especializado 24 horas por dia, 7 dias por semana, medidas de segurança avançadas, incluindo SSL, força bruta, malware e proteção contra DDoS, economia de até 73%
add_filter( 'woocommerce_checkout_fields', 'customize_checkout_fields' );
function customize_checkout_fields( $fields ) {
    // 将“公司名称”设为必填
    $fields['billing']['billing_company']['required'] = true;

// 修改“地址行2”的标签和占位符
    $fields['billing']['billing_address_2']['label'] = '公寓、套房、单元等(可选)';
    $fields['billing']['billing_address_2']['placeholder'] = '';

return $fields;
}

Prática Avançada: Uso Combinado de Ganchos e Filtros

A verdadeira personalização geralmente requer a combinação de ações e filtros, além da escrita de lógicas de negócios mais complexas.

Criar estados de pedido personalizados

Embora o WooCommerce já disponha de vários estados de pedido, você pode precisar adicionar um estado como “A ser entregue”. Isso requer o uso combinado de filtros para definir o estado, bem como ações para gerenciar as operações durante a mudança de estado.

Primeiro, use wc_order_statuses Status de registro do filtro: Novo.

Leitura recomendada Desenvolvimento de sites de comércio eletrónico WooCommerce: construa a sua loja online do zero

add_filter( 'wc_order_statuses', 'add_custom_order_status' );
function add_custom_order_status( $order_statuses ) {
    $order_statuses['wc-awaiting-prep'] = '待配货';
    return $order_statuses;
}

Em seguida, você pode usar isso na lista de pedidos do administrador. woocommerce_order_actions Adicione um botão de operação para acionar manualmente esse estado ao filtro, e use-o… woocommerce_order_action_* Crie ações personalizadas para lidar com a lógica após a atualização do estado, como enviar notificações por e-mail para o repositório.

Função de ajuste dinâmico com base no conteúdo do carrinho de compras

Você pode fazer a monitoração. woocommerce_before_calculate_totals As ações permitem modificar os preços ou as propriedades dos produtos no carrinho de compras antes do cálculo do total. Ao mesmo tempo, isso é feito de forma integrada (em conjunto com outros processos). woocommerce_cart_item_name Os filtros permitem exibir dinamicamente, na tabela do carrinho de compras, informações personalizadas relacionadas a essas alterações.

Hospedagem Compartilhada InterServer
Hospedagem compartilhada $2.50 USD por mês, primeiro mês $0.1 USD código promocional tryinterserver, 461 scripts de aplicativos em nuvem, instalação com um clique.

Por exemplo, verificar se há produtos de uma categoria específica no carrinho de compras; se houver, oferecer um desconto para outro tipo de produto e exibir a etiqueta “Oferta Combinada” ao lado do nome desse produto. Isso requer um entendimento profundo do objeto do carrinho de compras do WooCommerce, bem como o manejo adequado das sessões e do cache.

resumos

O sistema de ganchos (hooks) e filtros do WooCommerce é uma camada de abstração poderosa e sofisticada que combina perfeitamente a estabilidade do código central com a flexibilidade necessária para expansões. Desde modificações simples de texto até a reestruturação de processos de negócios mais complexos, os desenvolvedores podem utilizar esses recursos para personalizar e aprimorar o funcionamento do sistema de forma eficaz. add_action e add_filter Essas duas funções são essenciais para o processo de personalização. O segredo do sucesso reside em: primeiro, encontrar corretamente os pontos de interação (os “ganchos”) correspondentes no ciclo de vida do sistema; segundo, compreender os parâmetros e o contexto transmitidos; terceiro, escrever funções de callback eficientes e seguras. Ao estudar e praticar sistematicamente esses pontos de interação, você poderá superar as limitações dos temas e plugins existentes e criar um site de comércio eletrônico exclusivo que atenda plenamente às necessidades do seu negócio.

Perguntas frequentes Perguntas frequentes

Como encontrar plugins (ou “ganchos”, em português) disponíveis para o WooCommerce?

O método mais direto é consultar a documentação oficial para desenvolvedores do WooCommerce, que contém uma seção específica chamada “Referência de Ganchos” (Hook Reference).
Além disso, você pode usar a função de busca do seu editor de texto nos arquivos de código do seu site WordPress para procurar por “do_action” e “apply_filters” no diretório do plugin WooCommerce, a fim de encontrar as definições dos ganchos (hooks). Você também pode utilizar plugins de terceiros ou bibliotecas de fragmentos de código para explorar os ganchos mais comuns.

Onde devo colocar o meu código personalizado?

A melhor prática é adicionar o seu código personalizado ao subtema. functions.php O arquivo está armazenado corretamente. Isso garante que suas alterações não sejam substituídas quando o tema for atualizado.
Se você prever que o volume de código será grande ou que as funções serão independentes, também é possível criar um plugin dedicado para gerenciar todo o código personalizado do WooCommerce. Nunca modifique diretamente os arquivos centrais dos plugins do WooCommerce ou do tema pai.

Por que meu filtro não está funcionando?

Primeiro, verifique a prioridade da sua função de callback.add_filter Se o terceiro parâmetro é apropriado. Quanto menor o número, maior a prioridade, e a ação é executada mais cedo. Se outros plugins modificarem o mesmo valor e o fizerem posteriormente (com números de prioridade maiores), eles podem substituir as suas alterações.
其次,确保你的回调函数正确返回了值。过滤器函数必须有一个 return 语句。
Por fim, confira se o nome do hook está escrito corretamente e se o seu código foi carregado após o hook ser acionado.

As ações e filtros podem ser removidos?

Sim. Pode ser usado. remove_action() e remove_filter() As funções podem remover os callbacks (funções de resposta) que já foram adicionados. No entanto, isso requer que você conheça informações como o nome da função e a prioridade do callback no momento do seu registro, e a remoção deve ser realizada após a adição do callback original, mas antes da sua execução. É necessário proceder com cuidado para evitar danificar o funcionamento de outros plugins ou temas.

Como depurar a ordem de execução dos ganchos (hooks) e seus parâmetros?

Usar ferramentas de depuração é o método mais eficiente. Instale um plugin de depuração para o WordPress, como o “Query Monitor”. Esse plugin possui um painel dedicado chamado “Hooks”, que lista todos os hooks executados durante o carregamento da página, suas funções de retorno (callbacks), prioridades e parâmetros. Isso é essencial para entender processos complexos e identificar conflitos. Além disso, assegure-se de… wp-config.php Ativar em... WP_DEBUG Modelo.