Atualizado em: 12 de Junho de 2026

Documentação: CALCM2

Calculadora de m2 para WooCommerce (WooTatitas) — Guia de Integração para Desenvolvedores

Guia rápido para programadores que desejam usar este plugin como base em seus projetos.

Aviso importante

Este plugin pode mudar funcionalidades sem aviso prévio para acompanhar atualizações do WooCommerce.

Toda customização é de responsabilidade do desenvolvedor. Não edite os arquivos originais do plugin. Faça suas alterações em código externo:

  • um plugin próprio (preferencialmente must‑use),
  • um plugin adicional do seu projeto, ou
  • o functions.php de um tema filho.
  • Utilize hooks (actions/filters) documentados. Alterações diretas no plugin serão sobrescritas em atualizações.

1. Visão geral

O plugin Calculadora de m2 para WooCommerce permite vender produtos por metro quadrado diretamente no WooCommerce.

Ele adiciona uma calculadora na página do produto, onde o cliente informa medidas como largura e altura. A partir desses dados, o plugin calcula automaticamente a área em m2, aplica sobra ou acréscimo quando configurado e envia a quantidade correta para o carrinho.

O plugin foi desenvolvido para lojas que vendem produtos por área, como pisos, revestimentos, tecidos, vidros, adesivos, papéis de parede, grama sintética, placas, mantas e materiais semelhantes.

A integração acontece dentro do fluxo padrão do WooCommerce: produto, carrinho, checkout, pedido, e-mails e relatórios.

2. Pré-requisitos

  • WordPress instalado;
    WooCommerce ativo;
    PHP compatível com a versão atual do WordPress/WooCommerce;
    Permissão administrativa para configurar produtos;
    Licença ativa do plugin.

Recomenda-se manter WordPress, WooCommerce, tema e plugins sempre atualizados.

3. Arquitetura de integração

O plugin se integra ao WooCommerce usando o fluxo padrão de produto, carrinho, checkout, pedido e e-mails.

O fluxo geral é:

  1. O administrador ativa a calculadora no produto;
  2. O plugin carrega as configurações salvas para aquele produto;
  3. No frontend, a calculadora é exibida na página do produto;
  4. O cliente informa largura, altura, unidade e, quando permitido, acréscimo/sobra;
  5. O plugin calcula a área base e a área final para compra;
  6. Ao adicionar ao carrinho, a área calculada é enviada como quantidade do item;
  7. O WooCommerce usa o preço do produto ou da variação para calcular o total;
  8. Os dados de m2 são preservados no carrinho, checkout, pedido e e-mails;
  9. Os dados também ficam disponíveis para relatórios e análise no WooCommerce.

4. Hooks disponíveis para desenvolvedores

woocommerce_checkout_create_order_line_item

Tipo: Action
Quando é executado: Durante a criação dos itens do pedido no checkout.

Uso recomendado: Capturar os dados de m2 salvos no item do pedido e enviar para sistemas externos, como ERP, produção, separação, corte, orçamento ou emissão interna.

Parâmetros principais:

$item — item do pedido;
$cart_item_key — chave do item no carrinho;
$values — dados do item no carrinho;
$order — pedido WooCommerce.

Retorno: Não se aplica.

Exemplo de uso:

add_action( ‘woocommerce_checkout_create_order_line_item’, function ( $item, $cart_item_key, $values, $order ) { if ( empty( $values[‘wootatitas_calcm2’] ) || ! is_array( $values[‘wootatitas_calcm2’] ) ) { return; }

$dados_m2 = $values[‘wootatitas_calcm2’];

$largura = isset( $dados_m2[‘width’] ) ? $dados_m2[‘width’] : ”; $altura = isset( $dados_m2[‘height’] ) ? $dados_m2[‘height’] : ”; $unidade = isset( $dados_m2[‘unit’] ) ? $dados_m2[‘unit’] : ”; $area_base = isset( $dados_m2[‘base_area’] ) ? $dados_m2[‘base_area’] : ”; $area_compra = isset( $dados_m2[‘purchase_area’] ) ? $dados_m2[‘purchase_area’] : ”; $preco_por_m2 = isset( $dados_m2[‘price_per_m2’] ) ? $dados_m2[‘price_per_m2’] : ”; $variation_id = isset( $dados_m2[‘variation_id’] ) ? $dados_m2[‘variation_id’] : 0;

 

woocommerce_order_status_changed

Tipo: Action
Quando é executado: Quando o status de um pedido muda.

Uso recomendado: Enviar os dados de m2 para um sistema externo apenas quando o pedido chegar em um status específico, como processing ou completed.

Parâmetros principais:

$order_id — ID do pedido;
$old_status — status anterior;
$new_status — novo status;
$order — objeto do pedido.

Retorno: Não se aplica.

Exemplo de uso:

add_action( ‘woocommerce_order_status_changed’, function ( $order_id, $old_status, $new_status, $order ) { if ( ! in_array( $new_status, array( ‘processing’, ‘completed’ ), true ) ) { return; } foreach ( $order->get_items() as $item_id => $item ) { $area_compra = $item->get_meta( ‘_wootatitas_calcm2_purchase_area’, true ); if ( ” === $area_compra ) { continue; } $dados = array( ‘order_id’ => $order_id, ‘item_id’ => $item_id, ‘product_id’ => $item->get_product_id(), ‘variation_id’ => $item->get_variation_id(), ‘area_compra’ => $area_compra, ‘largura’ => $item->get_meta( ‘_wootatitas_calcm2_width’, true ), ‘altura’ => $item->get_meta( ‘_wootatitas_calcm2_height’, true ), ‘unidade’ => $item->get_meta( ‘_wootatitas_calcm2_unit’, true ), ); // Seu código de integração aqui. // Exemplo: enviar $dados para um sistema externo. } }, 20, 4 );

woocommerce_payment_complete

Tipo: Action
Quando é executado: Quando o pagamento do pedido é confirmado pelo WooCommerce.

Uso recomendado: Disparar uma integração somente após pagamento confirmado, evitando enviar pedidos ainda pendentes

Parâmetros principais:

$order_id — ID do pedido.

Retorno: Não se aplica.

Exemplo de uso:

add_action( ‘woocommerce_payment_complete’, function ( $order_id ) { $order = wc_get_order( $order_id ); if ( ! $order ) { return; } foreach ( $order->get_items() as $item ) { $area_compra = $item->get_meta( ‘_wootatitas_calcm2_purchase_area’, true ); if ( ” === $area_compra ) { continue; } // Pedido pago com item vendido por m2. // Seu código de integração aqui. } } );

woocommerce_get_item_data

Tipo: Filter
Quando é executado: Quando o WooCommerce monta os dados exibidos do item no carrinho e checkout.

Uso recomendado: Adicionar informações complementares ao item vendido por m2 no carrinho ou checkout, sem alterar o cálculo principal do plugin.

Parâmetros principais:

$item_data — dados que serão exibidos;
$cart_item — item do carrinho.

Retorno: Array com os dados exibidos.

Exemplo de uso:

add_filter( ‘woocommerce_get_item_data’, function ( $item_data, $cart_item ) { if ( empty( $cart_item[‘wootatitas_calcm2’] ) || ! is_array( $cart_item[‘wootatitas_calcm2’] ) ) { return $item_data; } $dados_m2 = $cart_item[‘wootatitas_calcm2’]; if ( ! empty( $dados_m2[‘purchase_area’] ) ) { $item_data[] = array( ‘name’ => ‘Área enviada para produção’, ‘value’ => wc_clean( $dados_m2[‘purchase_area’] ) . ‘ m2’, ); } return $item_data; }, 20, 2 );

woocommerce_available_variation

Tipo: Filter
Quando é executado: Quando o WooCommerce prepara os dados das variações disponíveis no produto variável.

Uso recomendado: Adicionar informações extras da variação para uso no frontend, como observações internas, códigos externos ou regras auxiliares de integração.

Parâmetros principais:

$variation_data — dados públicos da variação enviados ao frontend;
$product — produto pai;
$variation — objeto da variação.

Retorno: Array com os dados da variação.

Exemplo de uso:

add_filter( ‘woocommerce_available_variation’, function ( $variation_data, $product, $variation ) { if ( ! $variation || ! is_a( $variation, ‘WC_Product_Variation’ ) ) { return $variation_data; } $variation_data[‘minha_integracao’] = array( ‘codigo_externo’ => get_post_meta( $variation->get_id(), ‘_codigo_externo’, true ), ); return $variation_data; }, 20, 3 );

5. Boas práticas

  1. Configure a calculadora apenas em produtos que realmente são vendidos por área.
  2. Em produtos variáveis, mantenha as regras de cálculo no produto pai e use as variações para controlar preço, atributos e estoque.
  3. Antes de publicar, teste o produto com medidas pequenas, médias e grandes para validar mínimo, máximo, incremento e sobra/acréscimo.
  4. Use descrições claras no produto para orientar o cliente sobre como medir largura e altura.
  5. Evite alterar manualmente a quantidade de itens calculados por m2 no carrinho, pois a quantidade representa a área final calculada.
  6. Ao trabalhar com estoque, confira se o controle está configurado no lugar correto: produto simples, produto pai ou variação.
  7. Se usar produto variável, teste cada variação com preço e estoque próprios antes de liberar a venda.
  8. Mantenha os dados calculados no pedido sem edição manual, para preservar o histórico da compra.
  9. Use a customização visual com cuidado para manter a calculadora legível em desktop e celular.
  10. Evite cores com baixo contraste entre texto, fundo, borda e campos da calculadora.
  11. Depois de alterar o visual da calculadora, teste a página do produto em dispositivos móveis.
  12. Não edite arquivos internos do plugin para personalizar aparência. Use a aba de customização sempre que possível.
  13. Mantenha WordPress, WooCommerce, tema e plugins atualizados para reduzir conflitos.
  14. Antes de atualizar o plugin em loja ativa, faça backup e teste em ambiente de homologação quando possível.
  15. Para integrações externas, leia os dados de m2 pelos metadados do pedido em vez de tentar recalcular a área fora do WooCommerce.
  16. Não altere metadados de m2 em pedidos já criados, salvo em rotinas internas muito bem controladas.
  17. Em integrações com ERP, produção ou planilhas, envie os dados somente após o pedido chegar ao status desejado.
  18. Ao usar hooks do WooCommerce, sempre verifique se os dados de m2 existem antes de executar sua integração.
  19. Não exponha dados internos do pedido em endpoints públicos sem autenticação adequada.
  20. Em caso de dúvida sobre configuração, valide primeiro com um produto de teste antes de aplicar em vários produtos da loja.

6. Limitações e observações

O plugin foi desenvolvido para calcular e vender produtos por m2 dentro do fluxo padrão do WooCommerce.
Ele não transforma o WooCommerce em um sistema completo de orçamento, projeto técnico, corte industrial ou controle avançado de produção. A função principal é calcular a área informada pelo cliente, aplicar as regras configuradas e enviar a quantidade correta para compra.

Até o momento, o plugin não oferece:

  • API REST pública própria;
  • webhooks próprios;
  • shortcode para exibir a calculadora fora da página do produto;
  • bloco próprio do Gutenberg;
  • campos diferentes por variação;
  • múltiplas fórmulas personalizadas por produto;
  • cálculo por ambiente ou cômodo;
  • desenho visual de planta ou área;
  • upload de imagem/planta pelo cliente;
  • cálculo automático por caixa fechada;
  • integração nativa com ERP;
  • integração nativa com sistemas de corte, produção ou logística;
  • personalização do botão comprar do WooCommerce;
  • custom CSS livre;
  • custom JS livre.
Em produtos variáveis, as configurações da calculadora ficam no produto pai. As variações são usadas para preço, atributos e estoque, mas ainda não possuem regras individuais de cálculo nesta versão.
A calculadora foi pensada para produtos vendidos por área. Para produtos vendidos por unidade, peso, volume, caixa fechada ou orçamento manual, pode ser necessário outro tipo de configuração ou uma solução específica.
A validação final da compra acontece no servidor. O JavaScript melhora a experiência do cliente no frontend, mas não deve ser considerado a única camada de validação.
O plugin preserva os dados de m2 no carrinho, checkout, pedido e e-mails. Porém, alterações manuais feitas diretamente no banco de dados, metadados do pedido ou itens do carrinho podem gerar inconsistências.
A compatibilidade visual depende do tema utilizado. O plugin segue padrões do WooCommerce, mas temas muito personalizados ou builders com estruturas alteradas podem exigir pequenos ajustes visuais.
O plugin possui compatibilidade com WooCommerce Blocks/Store API, mas lojas com checkout muito customizado, plugins de checkout alternativo ou fluxos externos de pagamento devem ser testadas antes do uso em produção.
As integrações com sistemas externos devem ler os dados de m2 pelos metadados do pedido ou por hooks nativos do WooCommerce. O plugin não fornece, nesta versão, um endpoint público próprio para consulta externa dos cálculos.
Recursos internos de licenciamento, atualização privada, rotinas protegidas, logs internos e processos sensíveis de segurança não fazem parte desta documentação pública.

7. Resumo técnico

O plugin oferece integração com o WooCommerce para venda de produtos por m2, usando o fluxo padrão de produto, carrinho, checkout, pedido, e-mails e relatórios.
A configuração da calculadora é feita no painel do produto. No frontend, o cliente informa as medidas, o plugin calcula a área necessária e envia a área final como quantidade para o carrinho.
O nível de extensibilidade é adequado para integrações operacionais, como envio de dados para ERP, planilhas, produção, atendimento ou relatórios internos, usando hooks nativos do WooCommerce e metadados dos itens do pedido.
Em produto simples, as regras da calculadora ficam no próprio produto. Em produto variável, as regras ficam no produto pai, enquanto preço e estoque podem seguir a variação escolhida.
Os principais cuidados técnicos são: testar produtos simples e variáveis, validar estoque no local correto, preservar os metadados do pedido, evitar recalcular dados fora do WooCommerce e usar apenas pontos públicos de integração.
Rotinas internas de licenciamento, atualização privada, logs e processos protegidos não fazem parte da camada pública de integração e não devem ser usados como dependência em customizações.

Como instalar

Veja nosso guia de como instalar nosso plugin:

Compre nosso plugin

Gostou do que viu? Compre o nosso plugin:

0
    0
    Comprando...
    Nenhum plugin sendo comprado no momento.