Atenção!

Este artigo contém código PHP e destina-se a programadores. Oferecemos este código como cortesia, mas não prestamos suporte para personalizações de código ou desenvolvimento de terceiros.

Para orientação adicional, consulte o tutorial da WPBeginner sobre como adicionar código personalizado.

Ignorar

Como Criar uma Smart Tag a partir de um Campo ACF

Tem interesse em criar Smart Tags personalizadas com base em campos gerados com o ACF (Advanced Custom Fields)? Neste tutorial, vamos guiá-lo através do processo de criação destas Smart Tags especializadas usando um trecho de código conciso.

Para a ilustração deste tutorial, vamos considerar um site WordPress que utiliza posts como itens de portfólio de vendas. Vamos conceber um único formulário para ser exibido em cada página de post, integrando-o perfeitamente ao modelo PHP.

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

Este campo de Preço será pré-preenchido no formulário e atualizado dinamicamente com base no post que está a ser visualizado. Como o formulário permanece constante entre os posts, mas o Preço varia, empregaremos uma Smart Tag para este campo para garantir a sua adaptabilidade com a atualização das informações de cada post.

Criação do campo personalizado com ACF

Primeiro, começaremos por criar o nosso campo personalizado com o plugin Advanced Custom Fields.

Seguindo a documentação do ACF, adicionámos um novo campo aos nossos posts chamado portfolio_price.

Siga a documentação do ACF sobre a criação de um novo campo personalizado para adicionar um campo aos seus posts.

Este tutorial pressupõe que já adicionou os seus campos ao seu post. Se precisar de ajuda para adicionar campos aos posts do WordPress usando o plugin Advanced Custom Fields, consulte a documentação deles.

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 trechos ao seu site, consulte este tutorial.

/**
 * Register the Smart Tag so it will be available to select in the form builder.
 *
 * @link   https://wpforms.com/developers/how-to-create-a-smart-tag-from-an-acf-field/
 */

function wpf_dev_register_smarttag( $tags ) {
 
    // Key is the tag, item is the tag name.
    $tags[ 'portfolio_price' ] = 'Portfolio Price';
 
    return $tags;
}

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

function wpf_dev_process_smarttag( $content, $tag ) {
 
    // Only run if it is our desired tag.
    if ( 'portfolio_price' === $tag ) {

        //Get the field name from ACF
        $my_acf_field = get_field( 'portfolio_price', get_the_ID() );

        // Replace the tag with our 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 ‘Portfolio Price’. 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 Field Name.

procure pelo rótulo do campo que criou com o plugin ACF

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

Se precisar de ajuda para criar um formulário, consulte este tutorial.

Adicionar as Smart Tags

Para o nosso formulário, vamos incluir o Título do Produto, que é o título do post. Podemos usar uma Smart Tag incorporada que o WPForms já fornece para isto.

Assim que adicionar o campo Texto de Linha Única para o Título do Produto, clique no separador Avançadas. No Valor Padrão para o campo, clique na ligação Mostrar Etiquetas Inteligentes e selecione o Título Incorporado do Post/Página para que o título do post preencha automaticamente este campo do formulário.

Adicione a Etiqueta Inteligente Título Incorporado do Post/Página para o valor padrão no campo Título do Produto

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

No separador Avançadas do campo Preço do Produto, selecione a Etiqueta Inteligente {portfolio_price} das Etiquetas Inteligentes disponíveis.

Agora pode usar a etiqueta inteligente do acf

Adicionar o shortcode WPForms a um template PHP

Se precisar de ajuda para adicionar um shortcode a um template PHP, revise este tutorial.

Para este tutorial, adicionámos o nosso shortcode ao fundo do template da página de post único.

adicione o shortcode ao fundo do template da página de post único

Agora pode ver que, à medida que os seus posts mudam, também mudarão o Preço do Produto e o Título do Produto do seu formulário.

agora o preço do produto muda dinamicamente

Gostaria de criar mais Etiquetas Inteligentes personalizadas? Dê uma vista de olhos ao nosso tutorial sobre Como Criar uma Etiqueta Inteligente Personalizada.

Filtro de Referência