<html lang="pt-pt" dir="ltr"><head></head><body>### [Como Criar uma Smart Tag a Partir de um Campo ACF](https://wpforms.com/developers/how-to-create-a-smart-tag-from-an-acf-field/)

**Publicado:** 9 de abril de 2021
**Autor:** Equipa Editorial

**Excerto:** Este tutorial mostrar-lhe-á como criar uma smart tag personalizada para Campos Personalizados Avançados dentro do seu WPForms. 

**Conteúdo:**

Está interessado em criar Smart Tags personalizadas com base em campos gerados com [ACF (Advanced Custom Fields)](https://www.advancedcustomfields.com/ "Advanced Custom Fields WordPress Plugin")? Neste tutorial, guiá-lo-emos através do processo de criação destas Smart Tags especializadas utilizando um conciso trecho de código.

Para a ilustração deste tutorial, vamos considerar um site WordPress que utiliza publicações como itens de portfólio de vendas. Criaremos um único formulário a ser exibido em cada página de publicação, integrando-o perfeitamente no [template PHP](https://wpforms.com/developers/how-to-add-wpforms-shortcodes-to-php-templates/ "Como Adicionar Shortcodes WPForms a Templates PHP").

No entanto, para que os autores listem eficazmente os seus itens à venda, terão de introduzir os respetivos preços. Aproveitando o plugin ACF, incorporámos um campo de **Preço** nas definições da publicação.

Este campo de **Preço** será pré-preenchido no formulário e atualizar-se-á dinamicamente com base na publicação que está a ser visualizada. Como o formulário permanece constante entre as publicações, mas o Preço varia, empregaremos uma Smart Tag para este campo para garantir a sua adaptabilidade com cada atualização de informação da publicação.

## Criação do campo personalizado com ACF

Primeiro, começaremos por criar o nosso campo personalizado com o [plugin Advanced Custom Fields](https://wordpress.org/plugins/advanced-custom-fields/ "plugin Advanced Custom Fields").

Seguindo a documentação do ACF, adicionámos um novo campo às nossas publicações chamado **portfolio\_price**.

![Siga a documentação do ACF sobre a criação de um novo campo personalizado para adicionar um campo às suas publicações.](https://wpforms.com/wp-content/uploads/2021/04/wpforms-adding-acf-field.jpg)

Este tutorial pressupõe que já adicionou os seus campos à sua publicação. Se precisar de ajuda para adicionar campos às publicações do WordPress utilizando o plugin Advanced Custom Fields, [consulte a documentação deles](https://www.advancedcustomfields.com/resources/adding-fields-posts/ "Adicionar campos a Publicações").

## Criação de uma Smart Tag a partir do campo ACF

Normalmente, criaríamos primeiro o formulário. No entanto, como sabemos que queremos usar esta nova Smart Tag dentro do nosso construtor de formulários, vamos adicionar o snippet antes de criar o formulário.

Se precisar de ajuda para adicionar snippets ao seu site, [consulte este tutorial](https://wpforms.com/developers/how-to-add-custom-php-or-javascript-for-wpforms/ "Como Adicionar PHP ou JavaScript Personalizado para WPForms").

```

/**
 * Regista a Smart Tag para que esteja disponível para seleção no construtor de formulários.
 *
 * @link   https://wpforms.com/developers/how-to-create-a-smart-tag-from-an-acf-field/
 */

function wpf_dev_register_smarttag( $tags ) {
 
    // A chave é a tag, o item é o nome da tag.
    $tags[ 'portfolio_price' ] = 'Preço do Portfólio';
 
    return $tags;
}

add_filter( 'wpforms_smart_tags', 'wpf_dev_register_smarttag' );
 
/**
 * Processa a Smart Tag.
 *
 * @link   https://wpforms.com/developers/how-to-create-a-smart-tag-from-an-acf-field/
 */

function wpf_dev_process_smarttag( $content, $tag ) {
 
    // Executa apenas se for a nossa tag desejada.
    if ( 'portfolio_price' === $tag ) {

        //Obtém o nome do campo do ACF
        $my_acf_field = get_field( 'portfolio_price', get_the_ID() );

        // Substitui a tag pelo nosso link.
        $content = str_replace( '{portfolio_price}', $my_acf_field, $content );
    }
 
    return $content;
}

add_filter( 'wpforms_smart_tag_process', 'wpf_dev_process_smarttag', 10, 2 );

```

Vamos analisar estas duas funções.

A primeira função está a criar uma Smart Tag vazia com o nome **‘Preço do Portfólio’**. Nada será atribuído a esta tag ainda, estamos apenas a criá-la com esta função.

A próxima função é onde definiremos a Smart Tag e de onde ela deve extrair a informação.

Com a linha **$my\_acf\_field = get\_field( ‘portfolio\_price’, get\_the\_ID() );** estamos a dizer ao código que ele precisa de ir ao Advance Custom Fields e obter o valor deste campo. Terá de introduzir o nome do campo aqui. Para o nosso tutorial, nomeámos o nosso campo **portfolio\_price**.

Se precisar de ajuda para encontrar o nome do seu campo, basta editar o campo que criou no ACF e procurar pelo rótulo **Nome do Campo**.

![procure pelo rótulo do campo que criou com o plugin ACF](https://wpforms.com/wp-content/uploads/2021/04/wpforms-get-acf-field-name.jpg)

## Criação do formulário

Criámos o nosso formulário para ter os campos de formulário **Nome, Email, Título do Produto (Texto de Linha Única), Preço do Produto (Texto de Linha Única) e Comentários (Texto de Parágrafo)**.

![Criar um novo formulário](https://wpforms.com/wp-content/uploads/2022/05/wpforms-and-acf-smart-tag.jpg)

Se precisar de ajuda para criar um formulário, [consulte este tutorial](https://wpforms.com/docs/creating-first-form/ "Criar o Seu Primeiro Formulário").

## Adição das Smart Tags

Para o nosso formulário, vamos incluir o **Título do Produto**, que é o título da publicação. Podemos usar uma Smart Tag integrada que o WPForms já fornece para isto.

Depois de adicionar o campo **Texto de Linha Única** para o **Título do Produto**, basta clicar no separador **Avançado**. No **Valor Padrão** para o campo, clique na ligação **Mostrar Smart Tags** e selecione o **Título da Publicação/Página Incorporada** para que o título da publicação preencha automaticamente este campo do formulário.

![Adicionar a Smart Tag Título da Publicação/Página Incorporada para o valor padrão no campo Título do Produto](https://wpforms.com/wp-content/uploads/2022/05/wpforms-product-title.jpg)

Em seguida, repetiremos este passo novamente para o campo **Preço do Produto**.

No separador **Avançado** do campo **Preço do Produto**, selecione a Smart Tag **{portfolio\_price}** entre as Smart Tags disponíveis.

![Agora pode usar a smart tag do acf](https://wpforms.com/wp-content/uploads/2022/05/wpforms-product-price.jpg)

## Adição do shortcode WPForms a um template PHP

Se precisar de ajuda para adicionar um shortcode a um template PHP, [reveja este tutorial](https://wpforms.com/developers/how-to-add-wpforms-shortcodes-to-php-templates/ "Como Adicionar Shortcodes WPForms a Templates PHP").

Para este tutorial, adicionámos o nosso shortcode ao final do template da página de publicação única.

![adicionar o shortcode ao final do template da página de publicação única](https://wpforms.com/wp-content/uploads/2021/04/wpforms-using-shortcode-in-template.jpg)

Agora pode ver que à medida que as suas publicações mudam, o **Preço do Produto** e o **Título do Produto** do seu formulário também mudarão.

![agora o preço do produto muda dinamicamente](https://wpforms.com/wp-content/uploads/2021/04/ezgif-6-d662c9a2ab46.gif)

Gostaria de criar mais Smart Tags personalizadas? Dê uma vista de olhos ao nosso tutorial sobre [Como Criar uma Smart Tag Personalizada](https://wpforms.com/developers/how-to-create-a-custom-smart-tag/ "Como Criar uma Smart Tag Personalizada").

## Filtro de Referência

- [wpforms\_smart\_tags](https://wpforms.com/developers/wpforms_smart_tags/ "Usar o filtro wpforms_smart_tags")
- [wpforms\_smart\_tag\_process](https://wpforms.com/developers/wpforms_smart_tag_process/ "Usar o filtro wpforms_smart_tag_process")

**Categorias:** Extensão

**Tags:** PHP

---</body></html>