Como criar novos campos de usuário do WordPress

Existe uma vídeoaula minha ensinando a como criar um campo personalizado no post. Para adicionar o campo extra para o usuário, seguiremos a mesma lógica.

  • Definir uma função ou método pra exibição desses campos;
  • Uma função ou método para salvar essas informações no banco de dados;
  • E depois adicionar essas informações “no”, usando uma função “do”, informando o ganho responsável WordPress.

Vamos ao que interessante.

Vamos exemplificar com a criação de uma opção para adicionar um novo campo para Facebook na conta do usuário.

Na videoaula, abordei uma forma de orientação a objeto. Hoje vou mostrar um método procedural.

Vamos criar uma pasta chamada lib no tema.

Criando novos campos de usuário do WordPress

Nessa pasta criada, vamos criar um arquivo chamado custom_field_user.php

Nesse arquivo vamos definir a função que exibirá esse campo que vamos criar.

/**
 * Define uma função, e como parâmetro receber
 * o objeto da classe WP_User
 * @param WP_User $user
 */
function createFieldUser($user) {
    /**
     * Define uma variável, que recebe o valor que vamos adicinar,
     * caso ele não exista, ele retorna o valor nulo
     */
    $facebook = get_user_meta($user->ID, 'user_facebook', true);

    /**
     * Agora adicionamos o campo de formulário.
     */
    echo '<table class="form-table">
            <tr>
                <th>Facebook</th>
                <td><input type="text" name="user_facebook" value="' . $facebook . '"/></td>
            </tr>
        </table>';
}

Agora vamos adicionar essa função no WordPress. Para isso vamos usar a função add_action e definir o gancho para chamar essa função que criamos: edit_user_profile e show_user_profile :


add_action('edit_user_profile','createFieldUser');
add_action('show_user_profile', 'createFieldUser');

Precisamos agora salvar esse campo que criamos. Então vamos criar uma função para realizar essa ação:

/**
 * Define uma função para salvar a informação no banco de dados
 * Por parâmetro, receber o id do usuário
 * @param int $user_id
 */
function saveFieldUser($user_id) {
    if (isset($_POST['user_facebook'])) {
        update_user_meta($user_id, 'user_facebook', sanitize_text_field($_POST['user_facebook']));
    }
}

Agora vamos adicionar essa função no WordPress da mesma forma que fizemos com a função que exibi o campo. Dessa vez vamos usar o gancho personal_options_update e edit_user_profile_update:

add_action( 'personal_options_update', 'saveFieldUser' );
add_action( 'edit_user_profile_update', 'saveFieldUser' );

Agora vamos incluir o arquivo que criamos no functions.php. Vá no final do arquivo functions.php, e dê um require_once

require_once "lib/custom_meta_user.php";

Agora vamos acessar Usuário > Seu Perfil. No final da página você encontrará o nosso campo:

Criando novos campos de usuário do WordPress

Espero que tenha ajudado, e até a próxima.




Se o conteúdo foi relevante para você, e desejar, você pode incentivar fazendo uma doação.

One thought on “Como criar novos campos de usuário do WordPress

  1. Amigo, fiz tudo conforme falou, criei a pasta , criei o arquivo, coloquei os códigos, inseri a chamada no arquivo de funções do tema, mas o campo não aparece no perfil de usuário. Inclusive, já fiz vários testes com diversos códigos semelhantes, que li na web, em nenhuma ocasião apareceram os campos “criados” na visualização do perfil do usuário. Tem alguma outra coisa pra fazer? pra que possa realmente visualizar os campos criados?

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *