# Como corrigir o campo de cálculos que não calcula no WPForms

O campo WPForms Calculations não calcula quando o addon Calculations não está ativo, quando o cálculo foi habilitado num tipo de campo não suportado ou quando a fórmula tem erro de validação, caso em que o WPForms ignora o cálculo e trata o campo como comum.

## O que é WPForms Calculations que não calcula?

O WPForms Calculations é o addon que permite exibir um resultado numérico calculado a partir de outros campos do formulário, como somar itens de um orçamento ou montar uma calculadora de preço. Você ativa o cálculo num campo de resultado pela aba Avançado, na opção Enable Calculation, e escreve a fórmula no construtor que aparece abaixo do botão. A partir daí o valor desse campo passa a ser definido apenas pelo resultado do cálculo, não mais pela digitação do visitante.

O erro de não calcular acontece quando essa cadeia se rompe em algum ponto. Segundo a documentação oficial do WPForms, o addon só funciona nos campos de resultado Single Line Text, Paragraph Text, Number, Hidden e Single Item, e exige licença Pro ou Elite com o addon instalado e ativo. Um detalhe crítico da doc: o formulário pode ser salvo mesmo com a fórmula contendo erro de validação, mas nesse caso o cálculo é ignorado em segundo plano e o campo volta a se comportar como um campo comum, exibindo vazio ou o valor padrão em vez do resultado.

## Como identificar

- O campo de resultado fica vazio, mostra zero ou repete o valor padrão em vez de exibir o total calculado quando o visitante preenche o formulário.
- A opção 'Enable Calculation' não aparece na aba Avançado do campo, indicando que o addon Calculations não está instalado ou ativo.
- Ao clicar em 'Validate Formula' no construtor, surge uma mensagem de erro de validação apontando a linha da fórmula com problema.
- O cálculo funciona em alguns campos mas não em outros, porque foi habilitado num tipo de campo não suportado (por exemplo, um campo de Checkboxes ou Dropdown).
- O resultado aparece no preview do construtor mas não no formulário publicado, sinalizando cache de página ou conflito de JavaScript que impede o cálculo no front-end.

**Antes de começar:** Antes de trocar tipos de campo, editar fórmulas ou desativar plugins de cache em produção, faça um backup do site (arquivos e banco de dados) ou teste primeiro em um ambiente de staging, para poder reverter caso o formulário pare de enviar.

## Como prevenir

- Mantenha o addon Calculations e o WPForms sempre na versão estável mais recente, validando antes em staging para acompanhar mudanças no construtor de fórmula.
- Use sempre ponto como separador decimal nas fórmulas, nunca vírgula, para evitar o erro de validação que zera o cálculo no padrão numérico brasileiro.
- Habilite o cálculo apenas nos campos de resultado suportados (Single Line Text, Paragraph Text, Number, Hidden e Single Item) e documente quais campos calculam em cada formulário.
- Rode o Validate Formula após qualquer edição e teste o formulário publicado numa aba anônima antes de divulgar, garantindo que o cálculo roda também no front-end com cache ligado.

Erros relacionados

- [Como corrigir a lógica condicional que não funciona no WPForms](https://full.services/wp-fixer/corrigir-logica-condicional-wpforms/)
- [Como corrigir o erro do campo Date/Time no WPForms](https://full.services/wp-fixer/corrigir-date-time-field-wpforms/)
- [Como corrigir o erro de conversao de moeda do Stripe no WPForms](https://full.services/wp-fixer/corrigir-conversao-moeda-stripe-wpforms/)

## Causa

- O addon Calculations não está instalado ou ativo: sem ele a opção 'Enable Calculation' não existe na aba Avançado e nenhum campo calcula. A documentação oficial exige licença WPForms Pro ou Elite para instalar esse addon.
- O cálculo foi habilitado num tipo de campo que não suporta resultado: a doc do WPForms lista apenas Single Line Text, Paragraph Text, Number, Hidden e Single Item como campos de resultado válidos, e cita que Checkboxes ainda não é compatível.
- A fórmula tem erro de validação e o WPForms ignora o cálculo em segundo plano: a doc afirma que o formulário pode ser salvo com a fórmula inválida, mas o campo passa a funcionar como um campo comum, sem calcular nada.
- A fórmula usa vírgula como separador decimal: a doc determina que apenas o ponto é aceito para decimais, e a vírgula dispara erro de validação que zera o cálculo (pegadinha comum no padrão numérico brasileiro).
- A referência de campo na fórmula está com o ID errado: o WPForms exige o formato $FX (onde X é o ID do campo) e formatos próprios para subcampos ($FX_subfield) e pagamento ($FX_amount); um ID inexistente ou subcampo errado retorna resultado vazio.
- Um plugin de cache ou conflito de JavaScript no front-end impede o script de cálculo de rodar na página publicada, deixando o campo sem atualizar enquanto o visitante preenche o formulário.

## Como resolver

1. Confirme que o addon Calculations está instalado e ativo: O cálculo só existe com o addon Calculations, disponível nas licenças WPForms Pro e Elite. Verifique se ele está instalado e ativado antes de qualquer outro ajuste, pois sem ele a opção de cálculo nem aparece no campo.

```
Painel WP -> WPForms -> Addons
Localize 'Calculations Addon' e clique em Install Addon, depois em Activate
Confirme antes em WPForms -> Configurações que a licença Pro ou Elite está verificada
```

2. Use um tipo de campo de resultado suportado: Abra o campo onde o resultado deveria aparecer e confirme que ele é um dos tipos suportados pela doc oficial: Single Line Text, Paragraph Text, Number, Hidden ou Single Item. Se o cálculo foi habilitado num campo não suportado, como Checkboxes ou Dropdown, troque o campo de resultado por um desses tipos.

```
Painel WP -> WPForms -> abra o formulário no construtor
Selecione o campo de resultado e verifique o tipo (Single Line Text, Number, Hidden, Single Item ou Paragraph Text)
Se necessário, adicione um campo Number novo e mova o cálculo para ele
```

3. Habilite o cálculo na aba Avançado: Com o campo de resultado selecionado, vá até a aba Avançado das opções do campo e ative a opção Enable Calculation. O construtor de fórmula só aparece abaixo do botão depois que essa chave está ligada, e o valor do campo passa a ser definido apenas pelo cálculo.

```
No campo de resultado, abra a aba Avançado (Advanced)
Ligue a chave Enable Calculation
Confirme que o construtor de fórmula apareceu logo abaixo da chave
```

4. Valide a fórmula e corrija o separador decimal: Escreva a fórmula referenciando os campos no formato $FX, use o botão Insert Field ou digite o símbolo $ para o autocomplete sugerir os campos, e clique em Validate Formula. Troque qualquer vírgula decimal por ponto, pois a vírgula dispara erro de validação e faz o WPForms ignorar o cálculo.

```
No construtor, monte a fórmula (ex.: $F1 * $F2)
Use ponto para decimais, nunca vírgula (ex.: 19.90 e não 19,90)
Clique em Validate Formula e corrija a linha apontada até a validação passar
```

5. Teste no front-end e isole cache ou conflito: Publique o formulário, limpe o cache do site e preencha a página numa aba anônima para confirmar o cálculo ao vivo. Se o resultado aparece no preview do construtor mas não na página publicada, desative plugins de cache e teste outros plugins um a um para achar o conflito de JavaScript no front-end.

```
Limpe o cache do plugin de cache e do navegador
Abra a página do formulário numa janela anônima e preencha os campos de entrada
Se falhar só no front-end, desative o cache do formulário e teste os demais plugins um a um
```


## Código

```php
<?php
// Loga o valor final de um campo de cálculo no envio do WPForms
// para depurar quando o resultado chega vazio (cálculo ignorado).
add_action( 'wpforms_process_complete', 'full_debug_calc_field', 10, 4 );
function full_debug_calc_field( $fields, $entry, $form_data, $entry_id ) {
    $form_id  = 123;   // ID do formulário
    $field_id = 4;     // ID do campo de resultado (cálculo)
    if ( (int) $form_data['id'] !== $form_id ) {
        return;
    }
    $valor = isset( $fields[ $field_id ]['value'] ) ? $fields[ $field_id ]['value'] : '(vazio)';
    error_log( sprintf( 'WPForms calc field %d = %s', $field_id, $valor ) );
}
```

## Perguntas frequentes

### Por que o WPForms Calculations não calcula o resultado

Na maioria dos casos a fórmula tem um erro de validação. A documentação do WPForms explica que o formulário pode ser salvo mesmo com a fórmula inválida, mas o cálculo é ignorado em segundo plano e o campo passa a funcionar como um campo comum, sem exibir o resultado.

### Quais campos do WPForms aceitam cálculo

Segundo a doc oficial, os campos de resultado suportados são Single Line Text, Paragraph Text, Number, Hidden e Single Item. O campo Checkboxes ainda não é compatível, então habilitar cálculo nele não funciona.

### Preciso de qual plano do WPForms para usar Calculations

O addon Calculations está incluído nos planos WPForms Pro e Elite. Sem uma dessas licenças verificada e o addon instalado e ativo, a opção Enable Calculation nem aparece na aba Avançado do campo.

### Por que minha fórmula com vírgula não calcula no WPForms

A documentação determina que apenas o ponto é aceito como separador decimal nas fórmulas. A vírgula dispara um erro de validação que faz o WPForms ignorar o cálculo, então troque valores como 19,90 por 19.90.

### Como referencio um campo dentro da fórmula do WPForms

Use o formato $FX, onde X é o ID do campo, por exemplo $F1 multiplicado por $F2. Para subcampos use $FX_subfield e para campos de pagamento $FX_amount. O botão Insert Field e o símbolo $ acionam o autocomplete que sugere os campos.

### Onde fica a opção para habilitar o cálculo no campo

No construtor do formulário, selecione o campo de resultado e abra a aba Avançado. Ligue a chave Enable Calculation e o construtor de fórmula aparece logo abaixo. A partir daí o valor do campo passa a ser definido apenas pelo cálculo.

### O cálculo funciona no preview mas não no formulário publicado

Isso costuma ser cache de página ou conflito de JavaScript no front-end. Limpe o cache, teste numa aba anônima e desative plugins de cache ou outros plugins um a um até o cálculo voltar a rodar na página ao vivo.

### Posso digitar um valor manual no campo que tem cálculo ativo

Não. A documentação do WPForms é clara: depois que você habilita o cálculo num campo, o valor dele passa a ser definido apenas pelo resultado da fórmula, e a entrada manual do visitante é ignorada nesse campo.

**Fonte:** [WPForms — Calculations Addon (documentação oficial)](https://wpforms.com/docs/calculations-addon/)
