# Como corrigir o erro do campo de assinatura no WPForms

Quando o WPForms signature field não funciona, o campo costuma não aparecer, não registrar o traco do cursor ou falhar ao salvar a assinatura, geralmente por falta da licenca Pro, do addon Signature ativo ou da extensão PHP GD/ImageMagick no servidor.

## O que é erro do campo de assinatura no WPForms?

O WPForms signature field e um campo da seção Fancy Fields que captura a assinatura do visitante diretamente no formulário. O usuário clica e arrasta o cursor sobre a área de assinatura e o WPForms desenha o traco em um elemento canvas HTML5 via JavaScript. No envio, esse desenho e convertido em uma imagem PNG (formato escolhido por suportar fundo transparente) e salva junto com a entrada do formulário, ficando visivel em WPForms -> Entradas e nos e-mails de notificação pela Smart Tag de todos os campos.

O erro do campo de assinatura aparece quando alguma peca dessa cadeia falha: o campo não surge no construtor ou no formulário publicado, a área de assinatura não reage ao cursor, ou o envio retorna erro e a imagem PNG sai em branco. Segundo a documentação oficial do WPForms, dois requisitos são decisivos: o addon Signature exige uma licenca de nível Pro ou superior, e o servidor precisa ter a extensão PHP GD Library (php-gd) ou ImageMagick (php-imagick) habilitada para gerar a imagem da assinatura.

## Como identificar

- O campo de assinatura não aparece na seção Fancy Fields do construtor de formulários do WPForms.
- A área de assinatura carrega no formulário publicado, mas clicar e arrastar o cursor não desenha nenhum traco.
- Ao enviar o formulário com a assinatura preenchida surge a mensagem 'There was a problem while uploading your file' ou o envio falha sem registrar a entrada.
- A entrada e salva, mas a assinatura aparece como imagem PNG em branco ou quebrada em WPForms -> Entradas e no e-mail de notificação.
- No console do navegador (F12) surgem erros de JavaScript do script de assinatura logo ao carregar a página do formulário.

**Antes de começar:** Antes de alterar módulos PHP, permissões de pastas ou desativar plugins em producao, faca um backup completo do site (arquivos e banco de dados) ou teste primeiro em um ambiente de staging, para reverter caso o formulário pare de funcionar.

## Como prevenir

- Mantenha uma licenca de nível Pro ou superior ativa e o addon Signature sempre atualizado para acompanhar correcoes do campo de assinatura.
- Garanta que o servidor tenha php-gd ou php-imagick habilitado antes de publicar formulários com assinatura, validando em Ferramentas -> Saude do Site.
- Atualize WPForms e addons em staging primeiro e limpe o cache logo após cada atualização para evitar JavaScript antigo no campo.
- Padronize permissões da pasta de uploads (diretorios 755, arquivos 644) para que o WordPress sempre consiga gravar as imagens PNG das assinaturas.

Erros relacionados

- [Como corrigir o erro de upload de arquivos no WPForms](https://full.services/wp-fixer/corrigir-upload-arquivos-wpforms/)
- [Como corrigir entradas que não salvam no banco de dados no WPForms](https://full.services/wp-fixer/corrigir-entries-nao-salvam-wpforms/)
- [Como corrigir o erro do campo Date/Time no WPForms](https://full.services/wp-fixer/corrigir-date-time-field-wpforms/)

## Causa

- O addon Signature não esta instalado ou ativo: ele exige uma licenca de nível Pro ou superior do WPForms, e sem essa licenca o campo não aparece na seção Fancy Fields, conforme a documentação oficial.
- O servidor não tem a extensão PHP GD Library (php-gd) nem ImageMagick (php-imagick) habilitada, módulos que o WPForms usa para converter o traco do canvas em imagem PNG; sem eles o envio com assinatura falha.
- Um conflito de JavaScript com outro plugin ou com o tema interrompe o carregamento do script do canvas de assinatura, deixando a área de assinatura inerte ao cursor.
- O cache do navegador ou de plugin de cache esta servindo uma versão antiga do JavaScript do WPForms após uma atualização do plugin ou do addon, quebrando a inicializacao do campo.
- A permissão de escrita na pasta de uploads do WordPress (wp-content/uploads) esta incorreta, impedindo o WPForms de gravar o arquivo PNG gerado a partir da assinatura.

## Como resolver

1. Confirme a licenca Pro e ative o addon Signature: O campo de assinatura exige uma licenca de nível Pro ou superior. Verifique a licenca em WPForms -> Configurações e instale o addon Signature na tela de addons. Sem o addon ativo, o campo não aparece nos Fancy Fields.

```
Painel WP -> WPForms -> Configurações -> aba Geral (confirme licenca Pro ou superior)
Painel WP -> WPForms -> Addons -> localize 'Signature Addon' e clique em Instalar e Ativar
```

2. Habilite a extensão PHP GD ou ImageMagick: O WPForms precisa do módulo PHP GD Library (php-gd) ou ImageMagick (php-imagick) para gerar a imagem PNG da assinatura. Verifique em Ferramentas -> Saude do Site quais módulos estão ativos e habilite um deles pelo painel da hospedagem ou via WP-CLI.

```
Painel WP -> Ferramentas -> Saude do Site -> aba Informações -> seção Servidor (procure 'gd' ou 'imagick')
wp --info
Habilite php-gd ou php-imagick no painel da hospedagem (selecao de módulos PHP) e reinicie o PHP
```

3. Limpe o cache e teste em janela anonima: Após atualizar o WPForms ou o addon, limpe o cache do plugin de cache e do navegador e abra o formulário em uma janela anonima. Isso descarta JavaScript antigo do campo de assinatura sendo servido pelo cache.

```
Limpe o cache do seu plugin de cache (ex.: WP Rocket -> Configurações -> Limpar Cache)
Abra o formulário em uma janela anonima do navegador e teste a assinatura
```

4. Isole conflito de JavaScript: Se a área de assinatura não reage ao cursor, desative os demais plugins um a um e troque para um tema padrão, recarregando o formulário a cada teste e olhando o console (F12) até identificar o que interrompe o script do canvas.

```
Painel WP -> Plugins -> desative os demais plugins um a um
Painel WP -> Aparencia -> Temas -> ative um tema padrão (ex.: Twenty Twenty-Four)
Abra o console do navegador (F12 -> Console) e recarregue o formulário a cada teste
```

5. Corrija a permissão da pasta de uploads: Se o envio falha ao salvar a imagem, confirme que a pasta wp-content/uploads tem permissão de escrita para o WordPress gravar o PNG da assinatura. Ajuste as permissões via FTP ou WP-CLI.

```
Via FTP, confira a pasta wp-content/uploads (diretorios 755, arquivos 644)
find wp-content/uploads -type d -exec chmod 755 {} +
find wp-content/uploads -type f -exec chmod 644 {} +
```


## Código

```php
<?php
// Adicione ao functions.php do tema filho ou a um plugin de snippets.
// Avisa no admin quando faltam os modulos PHP que o campo de assinatura exige.
add_action( 'admin_notices', 'full_check_signature_image_libs' );
function full_check_signature_image_libs() {
    if ( ! current_user_can( 'manage_options' ) ) {
        return;
    }
    if ( extension_loaded( 'gd' ) || extension_loaded( 'imagick' ) ) {
        return; // Servidor apto a gerar o PNG da assinatura.
    }
    echo '<div class="notice notice-error"><p>';
    echo 'WPForms Signature: o servidor nao tem php-gd nem php-imagick. ';
    echo 'Habilite um deles para o campo de assinatura salvar a imagem PNG.';
    echo '</p></div>';
}
```

## Perguntas frequentes

### Por que o campo de assinatura não aparece no WPForms

O campo Signature exige uma licenca de nível Pro ou superior e o addon Signature instalado e ativo, conforme a documentação oficial do WPForms. Verifique sua licenca em WPForms -> Configurações e ative o addon na tela de Addons para o campo surgir na seção Fancy Fields.

### Qual licenca do WPForms preciso para usar o campo de assinatura

A documentação oficial informa que o Signature Addon requer uma licenca de nível Pro ou superior. Licencas Basic e Plus não incluem o addon, entao o campo de assinatura não fica disponível nesses planos.

### Por que o envio do formulário com assinatura falha

O WPForms converte o traco da assinatura em uma imagem PNG e precisa da extensão PHP GD Library ou ImageMagick para isso. Se nenhuma das duas estiver habilitada no servidor, o envio com assinatura retorna erro. Habilite php-gd ou php-imagick no painel da hospedagem.

### Em que formato o WPForms salva a assinatura

Segundo a documentação do WPForms, a assinatura e salva como imagem PNG, e não JPG. O PNG e usado porque suporta fundo transparente, permitindo reaproveitar a assinatura das entradas em outros documentos sem o fundo branco.

### A área de assinatura não desenha quando arrasto o cursor, o que fazer

Geralmente e conflito de JavaScript ou cache servindo um script antigo. Limpe o cache, teste em janela anonima e, se persistir, desative os outros plugins um a um e troque para um tema padrão até o canvas voltar a responder ao cursor.

### Como vejo a assinatura enviada pelo visitante

A assinatura fica disponível em WPForms -> Entradas, onde você abre a entrada e visualiza a imagem PNG. Ela também aparece nos e-mails de notificação quando o template usa a Smart Tag de todos os campos do formulário.

### O campo de assinatura funciona em celular e tablet

Sim. O visitante assina arrastando o dedo sobre a área de assinatura na tela de toque, da mesma forma que arrasta o cursor no desktop. Se não desenhar no celular, teste em outro navegador e verifique conflitos de JavaScript do tema.

### A assinatura aparece em branco na entrada, qual a causa

Costuma ser ausencia de GD/ImageMagick no servidor ou falta de permissão de escrita na pasta de uploads, o que impede gravar o PNG corretamente. Confirme os módulos PHP em Saude do Site e ajuste as permissões da pasta wp-content/uploads.

**Fonte:** [WPForms - How to Install and Use the Signature Addon](https://wpforms.com/docs/how-to-install-and-use-the-signature-addon/)
