Introdução
Gostaria de processar Smart Tags em etiquetas de campo nos seus formulários? Com um pequeno trecho de PHP, isso pode ser feito facilmente. Neste tutorial, mostraremos como processar as Smart Tags nas etiquetas dos campos dos seus formulários.
A utilização de etiquetas inteligentes é uma ferramenta muito útil para obter e apresentar dinamicamente dados específicos no seu formulário.
Por predefinição, as etiquetas inteligentes não serão processadas se forem colocadas dentro de qualquer etiqueta de campo no seu formulário.
No entanto, esta funcionalidade pode ser útil se, por exemplo, pretender mostrar um nome de utilizador com sessão iniciada, o URL da sua página ou mesmo apresentar outros detalhes utilizando Smart Tags personalizadas.
Para efeitos deste tutorial, vamos criar um formulário que apenas os nossos utilizadores com sessão iniciada podem ver, pelo que queremos torná-lo mais pessoal, utilizando o seu primeiro nome dentro da etiqueta de campo de um campo de formulário Paragraph.
Adicionar o snippet
Vamos começar por adicionar o nosso snippet ao nosso site. Se precisar de ajuda sobre como adicionar snippets ao seu site, consulte este tutorial.
Abaixo, vamos mostrar-lhe dois métodos, um que visa um ID de formulário específico e outro que seria aplicado a todos os formulários. Basta selecionar o snippet que pretende utilizar.
Direcionar um ID de formulário específico
Neste snippet, estamos a visar apenas o ID do formulário 365. Se precisar de ajuda para encontrar a ID do formulário, consulte este tutorial.
/** * Run Smart Tags on all field labels. * * @link https://wpforms.com/developers/how-to-process-smart-tags-in-field-labels/ */ function wpf_dev_textarea_field_display( $field, $field_atts, $form_data ) { // Optional, you can limit to specific forms. Below, we restrict output to // form #365. if ( absint( $form_data[ 'id' ] ) !== 365 ) { return $field; } $field[ 'label' ] = wpforms()->smart_tags->process( $field[ 'label' ], $form_data ); return $field; } add_filter( 'wpforms_textarea_field_display', 'wpf_dev_textarea_field_display', 10, 3 );
Utilizar para todos os WPForms
O código mostrado abaixo permitiria isso em todos os seus WPForms.
/** * Run Smart Tags on field labels in WPForms. * * @link https://wpforms.com/developers/how-to-process-smart-tags-in-field-labels/ */ function wpf_dev_textarea_field_display( $field, $field_atts, $form_data ) { $field[ 'label' ] = wpforms()->smart_tags->process( $field[ 'label' ], $form_data ); return $field; } add_filter( 'wpforms_textarea_field_display', 'wpf_dev_textarea_field_display', 10, 3 );
Criar o seu formulário
Em seguida, vamos criar o nosso formulário e adicionar os nossos campos. O primeiro campo de formulário que vamos adicionar é um campo de texto de parágrafo. Vamos utilizar a nossa nova Smart Tag dentro da etiqueta do campo para obter o primeiro nome do utilizador. Por isso, vamos alterar a etiqueta deste campo para Fale-nos um pouco sobre si {user_first_name}.
Se precisar de ajuda para criar o seu formulário, consulte esta documentação.
Quando o formulário for carregado, verá o nome que foi retirado da sua nova Smart Tag.
Utilizar as etiquetas inteligentes nas notificações por correio eletrónico
Também pode utilizar etiquetas inteligentes nas suas notificações.
Para tal, navegue para Definições a partir do criador de formulários e selecione Notificações.
Ao configurar a sua mensagem de notificação por correio eletrónico, pode selecionar a opção Mostrar etiquetas inteligentes para incluir as etiquetas inteligentes que pretende incluir na sua mensagem
Utilizar etiquetas inteligentes noutras etiquetas de campos de formulário
Abaixo, encontrará o snippet necessário para cada um dos vários campos do formulário que pode processar Smart Tags na etiqueta de cada um desses campos específicos.
Como mencionado acima, esses snippets são específicos para um único ID de formulário. Se quiser torná-lo disponível para todos os formulários, basta remover o bloco no snippet que faz referência ao ID do formulário.
/** * Run Smart Tags on field labels in WPForms. * * @link https://wpforms.com/developers/how-to-process-smart-tags-in-field-labels/ */ // Run smart tags on text field label. function wpf_dev_text_field_display( $field, $field_atts, $form_data ) { // Optional, you can limit to specific forms. Below, we restrict output to // form #365. if( $form_data[ 'id' ] != 365 ) return $field; $field[ 'label' ] = wpforms()->smart_tags->process( $field[ 'label' ], $form_data ); return $field; } add_filter( 'wpforms_text_field_display', 'wpf_dev_text_field_display', 10, 3 ); // Run smart tags on textarea field label. function wpf_dev_textarea_field_display( $field, $field_atts, $form_data ) { // Optional, you can limit to specific forms. Below, we restrict output to // form #365. if( $form_data[ 'id' ] != 365 ) return; $field[ 'label' ] = wpforms()->smart_tags->process( $field[ 'label' ], $form_data ); return $field; } add_filter( 'wpforms_textarea_field_display', 'wpf_dev_textarea_field_display', 10, 3 ); // Run smart tags on checkbox field label. function wpf_dev_checkbox_field_display( $field, $field_atts, $form_data ) { // Optional, you can limit to specific forms. Below, we restrict output to // form #365. if( $form_data[ 'id' ] != 365 ) return; $field[ 'label' ] = wpforms()->smart_tags->process( $field[ 'label' ], $form_data ); return $field; } add_filter( 'wpforms_checkbox_field_display', 'wpf_dev_checkbox_field_display', 10, 3 ); // Run smart tags on email field label. function wpf_dev_email_field_display( $field, $field_atts, $form_data ) { // Optional, you can limit to specific forms. Below, we restrict output to // form #365. if( $form_data[ 'id' ] != 365 ) return; $field[ 'label' ] = wpforms()->smart_tags->process( $field[ 'label' ], $form_data ); return $field; } add_filter( 'wpforms_email_field_display', 'wpf_dev_email_field_display', 10, 3 ); // Run smart tags on select field label. function wpf_dev_select_field_display( $field, $field_atts, $form_data ) { // Optional, you can limit to specific forms. Below, we restrict output to // form #365. if( $form_data[ 'id' ] != 365 ) return; $field[ 'label' ] = wpforms()->smart_tags->process( $field[ 'label' ], $form_data ); return $field; } add_filter( 'wpforms_select_field_display', 'wpf_dev_select_field_display', 10, 3 ); // Run smart tags on radio field label. function wpf_dev_radio_field_display( $field, $field_atts, $form_data ) { // Optional, you can limit to specific forms. Below, we restrict output to // form #365. if( $form_data[ 'id' ] != 365 ) return; $field[ 'label' ] = wpforms()->smart_tags->process( $field[ 'label' ], $form_data ); return $field; } add_filter( 'wpforms_radio_field_display', 'wpf_dev_radio_field_display', 10, 3 ); // Run smart tags on number field label. function wpf_dev_number_field_display( $field, $field_atts, $form_data ) { // Optional, you can limit to specific forms. Below, we restrict output to // form #365. if( $form_data[ 'id' ] != 365 ) return; $field[ 'label' ] = wpforms()->smart_tags->process( $field[ 'label' ], $form_data ); return $field; } add_filter( 'wpforms_number_field_display', 'wpf_dev_number_field_display', 10, 3 ); // Run smart tags on name field label. function wpf_dev_name_field_display( $field, $field_atts, $form_data ) { // Optional, you can limit to specific forms. Below, we restrict output to // form #365. if( $form_data[ 'id' ] != 365 ) return; $field[ 'label' ] = wpforms()->smart_tags->process( $field[ 'label' ], $form_data ); return $field; } add_filter( 'wpforms_name_field_display', 'wpf_dev_name_field_display', 10, 3 ); // Run smart tags on phone field label. function wpf_dev_phone_field_display( $field, $field_atts, $form_data ) { // Optional, you can limit to specific forms. Below, we restrict output to // form #365. if( $form_data[ 'id' ] != 365 ) return; $field[ 'label' ] = wpforms()->smart_tags->process( $field[ 'label' ], $form_data ); return $field; } add_filter( 'wpforms_phone_field_display', 'wpf_dev_phone_field_display', 10, 3 ); // Run smart tags on address field label. function wpf_dev_address_field_display( $field, $field_atts, $form_data ) { // Optional, you can limit to specific forms. Below, we restrict output to // form #365. if( $form_data[ 'id' ] != 365 ) return; $field[ 'label' ] = wpforms()->smart_tags->process( $field[ 'label' ], $form_data ); return $field; } add_filter( 'wpforms_address_field_display', 'wpf_dev_address_field_display', 10, 3 ); // Run smart tags on URL field label. function wpf_dev_url_field_display( $field, $field_atts, $form_data ) { // Optional, you can limit to specific forms. Below, we restrict output to // form #365. if( $form_data[ 'id' ] != 365 ) return; $field[ 'label' ] = wpforms()->smart_tags->process( $field[ 'label' ], $form_data ); return $field; } add_filter( 'wpforms_url_field_display', 'wpf_dev_url_field_display', 10, 3 ); // Run smart tags on password field label. function wpf_dev_password_field_display( $field, $field_atts, $form_data ) { // Optional, you can limit to specific forms. Below, we restrict output to // form #365. if( $form_data[ 'id' ] != 365 ) return; $field[ 'label' ] = wpforms()->smart_tags->process( $field[ 'label' ], $form_data ); return $field; } add_filter( 'wpforms_password_field_display', 'wpf_dev_password_field_display', 10, 3 ); // Run smart tags on payment checkbox field label. function wpf_dev_payment_checkbox_field_display( $field, $field_atts, $form_data ) { // Optional, you can limit to specific forms. Below, we restrict output to // form #365. if( $form_data[ 'id' ] != 365 ) return; $field[ 'label' ] = wpforms()->smart_tags->process( $field[ 'label' ], $form_data ); return $field; } add_filter( 'wpforms_payment_checkbox_field_display', 'wpf_dev_payment_checkbox_field_display', 10, 3 ); // Run smart tags on payment multiple select field label. function wpf_dev_payment_multiple_field_display( $field, $field_atts, $form_data ) { // Optional, you can limit to specific forms. Below, we restrict output to // form #365. if( $form_data[ 'id' ] != 365 ) return; $field[ 'label' ] = wpforms()->smart_tags->process( $field[ 'label' ], $form_data ); return $field; } add_filter( 'wpforms_payment_multiple_field_display', 'wpf_dev_payment_multiple_field_display', 10, 3 ); // Run smart tags on single payment field label. function wpf_dev_payment_single_field_display( $field, $field_atts, $form_data ) { // Optional, you can limit to specific forms. Below, we restrict output to // form #365. if( $form_data[ 'id' ] != 365 ) return; $field[ 'label' ] = wpforms()->smart_tags->process( $field[ 'label' ], $form_data ); return $field; } add_filter( 'wpforms_payment_single_field_display', 'wpf_dev_payment_single_field_display', 10, 3 );
Esta funcionalidade não suporta dados introduzidos pelo utilizador (por exemplo, {field_id="3"}
).
E já está! Agora pode processar as suas etiquetas inteligentes dentro de etiquetas de campo. Gostaria de processar as etiquetas inteligentes nas descrições de campo? Consulte o nosso artigo sobre Como processar etiquetas inteligentes em descrições de campos.
Relacionadas
Referência do filtro: wpforms_textarea_field_display