Atualizado em: 12 de Junho de 2026
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:
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.
A integração acontece dentro do fluxo padrão do WooCommerce: produto, carrinho, checkout, pedido, e-mails e relatórios.
Recomenda-se manter WordPress, WooCommerce, tema e plugins sempre atualizados.
O plugin se integra ao WooCommerce usando o fluxo padrão de produto, carrinho, checkout, pedido e e-mails.
O fluxo geral é:
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 );
Até o momento, o plugin não oferece:
Gostou do que viu? Compre o nosso plugin:
Comercializamos plugins na esperança de que seja útil, porém, é importante observar que ele é fornecido SEM NENHUMA GARANTIA inclusive sem a garantia implícita de ADEQUAÇÃO A UM DETERMINADO FIM.
Estamos sempre prontos para aprimorar nosso plugin e personalizá-lo de acordo com suas necessidades específicas. Não hesite em nos contatar a qualquer momento, estamos aqui para ajudá-lo.
Seus dados estão protegidos conosco.
Leia nossa Proteção de Dados.
© 2026 | Feito com ♥
39.840.429/0001-22