Como criar mais etiquetas inteligentes de utilizador

Introdução

Gostaria de criar Smart Tags de utilizador personalizadas para utilizar nos seus WPForms que extraem informações do perfil de utilizador do WordPress?

Uma Smart Tag é um pedaço de código que pode ser usado para inserir informações relevantes nas configurações de notificação do formulário ou como valores padrão do campo. Neste tutorial, vamos criar um formulário para todas as solicitações padrão do usuário do WordPress que compõem um perfil e exibi-las em uma página para que os usuários confirmem suas informações.

Por defeito, já existem algumas Smart Tags relacionadas com o utilizador disponíveis no WPForms, como User ID, Display Name, User Meta, etc.

A User Meta Smart Tag pode ser utilizada como uma cobertura em branco para quaisquer campos personalizados que possam ter sido adicionados aos perfis de utilizador do WordPress, como ligações sociais ou quaisquer campos personalizados adicionados ao perfil de utilizador do WordPress.

Criar o novo utilizador Etiquetas inteligentes

Primeiro, precisamos de adicionar este trecho de código ao nosso site. A primeira função que usa o wpforms_smart_tags criará as etiquetas inteligentes. A segunda função que utiliza o wpforms_smart_tag_process definirá as etiquetas inteligentes.

Se precisar de ajuda para adicionar trechos de código ao seu site, consulte este tutorial.

/**
 * Create User Smart Tags from the WordPress profile.
 *
 * @link   https://wpforms.com/developers/how-to-create-more-user-smart-tags/
 */

function wpf_dev_register_user_profile_smart_tags ( $tags ) {
 
    // Key is the tag, item is the tag name.
    $tags[ 'wp_nickname' ]     = 'WP Profile Nickname';
    $tags[ 'wp_username' ]     = 'WP Profile Username';
    $tags[ 'wp_url' ]          = 'WP Profile URL';
    $tags[ 'wp_user_role' ]    = 'WP Profile User Role';
    $tags[ 'wp_user_bio' ]     = 'WP Profile Bio';
     
    return $tags;
}
 
add_filter( 'wpforms_smart_tags', 'wpf_dev_register_user_profile_smart_tags', 10, 1 );
 
 
/**
 * Process the User Smart Tags from the WordPress profile.
 *
 * @link   https://wpforms.com/developers/how-to-create-more-user-smart-tags/
 */
 
function wpf_dev_process_user_profile_smart_tags( $content, $tag ) {
 
    $userID = get_current_user_id();
 
    // Nickname from WordPress profile
    if ( 'wp_nickname' === $tag ) {
 
        $wp_nickname = get_the_author_meta( 'nickname', $userID );
		
        // Replace the tag with the nickname pulled from the user's WordPress profile.
        $content = str_replace( '{wp_nickname}', $wp_nickname, $content );
 
    }
 
    // Username from WordPress profile
    if ( 'wp_username' === $tag ) {
 
        $wp_username = get_the_author_meta( 'user_login', $userID );
		
        // Replace the tag with the username pulled from the user's WordPress profile.
        $content = str_replace( '{wp_username}', $wp_username, $content );
 
    }

    // Website URL from WordPress profile
    if ( 'wp_url' === $tag ) {
 
        $wp_url = get_the_author_meta( 'user_url', $userID );
		
        // Replace the tag with the Website URL pulled from the user's WordPress profile.
        $content = str_replace( '{wp_url}', $wp_url, $content );
 
    }

    // Current role from WordPress profile
    switch ($tag) {
 
        case "wp_user_role":
        $user = wp_get_current_user();
        $roles = implode(', ', (array) $user->roles);
        $content = str_replace( '{' . $tag . '}', $roles, $content );
        break;
 
    }

    // Bio from WordPress profile
    if ( 'wp_user_bio' === $tag ) {
 
        $wp_user_bio = get_the_author_meta( 'description', $userID );
		
        // Replace the tag with the user bio pulled from the user's WordPress profile.
        $content = str_replace( '{wp_user_bio}', $wp_user_bio, $content );
 
    }
 
    return $content;
}
 
add_filter( 'wpforms_smart_tag_process', 'wpf_dev_process_user_profile_smart_tags', 10, 2 );

Este snippet está a adicionar WP Profile Nickname, WP Profile Username, WP Profile URL, WP Profile User Role e WP Profile Bio. Estas Smart Tags serão utilizadas no nosso formulário para extrair as informações que já temos do perfil do utilizador no WordPress, para que possam confirmar as informações registadas.

Criar o formulário

Agora é altura de criar o nosso formulário para podermos utilizar as nossas novas etiquetas inteligentes. Se precisar de ajuda para criar um formulário, consulte este artigo.

Para a maioria dos nossos campos neste formulário, estamos apenas a adicionar o campo de formulário Texto de linha única. Depois de adicionarmos o campo e actualizarmos a etiqueta, clique no separador Avançadas. Verá o campo Valor predefinido, basta selecionar Mostrar etiquetas inteligentes e deslocar-se até encontrar uma das novas etiquetas inteligentes que acabámos de adicionar. Depois de selecionar a correta, essa Smart Tag será apresentada dentro do Valor por defeito do nosso campo.

Ao adicionar etiquetas inteligentes personalizadas do utilizador ao valor predefinido dos campos, estas informações serão automaticamente extraídas do perfil WordPress do utilizador

Continuaremos a adicionar os nossos campos e Smart Tags da mesma forma. Para o campo Biografia, vamos utilizar o campo de formulário Texto de parágrafo para apresentar a biografia, mas os passos para adicionar a Smart Tag ao campo Valor predefinido são exatamente os mesmos que os anteriores.

Agora, quando os utilizadores visitarem este formulário, verão que as informações já foram recolhidas por defeito.

os utilizadores verão as suas informações já a preencher os campos do formulário quando visualizarem o formulário

Pode obter mais informações sobre a criação de outras etiquetas inteligentes consultando o artigo Como criar uma etiqueta inteligente personalizada.

E isso é tudo que você precisa para criar mais Smart Tags de usuário com WPForms. Você gostaria de usar essas Smart Tags dentro de um bloco HTML / Código? Em nosso tutorial Como processar Smart Tags em campos HTML, mostraremos como usar o PHP para permitir Smart Tags neste tipo de campo de formulário.

Referências de filtros: