-
Notifications
You must be signed in to change notification settings - Fork 195
Classe Odin_User_Meta
Criar user metas sempre foi uma tarefa demorada e chata, entretanto no Odin é possível criar de forma bem simples utilizando a classe Odin_User_Meta
.
Adicione a seguinte linha no functions.php do seu tema:
require_once get_template_directory() . '/core/classes/class-user-meta.php';
Você deve instanciar a classe para criar o user meta da seguinte forma:
$adicionais_user_meta = new Odin_User_Meta(
'adicionais', // Slug/ID do User Meta (obrigatório)
'Informações Adicionais' // Nome do User Meta (obrigatório)
);
Adicione os campos utilizando o método set_fields()
como por exemplo:
$adicionais_user_meta->set_fields(
array(
array(
'id' => 'test_text',
'label' => __( 'Test Text', 'odin' ),
'type' => 'text',
'description' => __( 'Descrição do campo de text', 'odin' )
)
)
);
Como é possível ver no exemplo, é necessário criar um array que irá conter os campos do nosso User Meta.
Tipos de campo:
Cria um campo comum de texto.
array(
'id' => 'your_id_name', // Obrigatório
'label' => __( 'Text Example', 'odin' ), // Obrigatório
'type' => 'text', // Obrigatório
'attributes' => array( // Opcional (atributos para input HTML/HTML5)
'placeholder' => __( 'Some text here!' )
),
'default' => 'Default text', // Opcional
'description' => __( 'Descrition Example', 'odin' ), // Opcional
)
Cria um campo de múltiplas linhas de texto.
array(
'id' => 'your_id_name', // Obrigatório
'label' => __( 'Text Example', 'odin' ), // Obrigatório
'type' => 'textarea', // Obrigatório
'attributes' => array( // Opcional (atributos para input HTML/HTML5)
'placeholder' => __( 'Some text here!' )
),
'default' => 'Default text', // Opcional
'description' => __( 'Descrition Example', 'odin' ), // Opcional
)
Cria um campo input em HTML que aceita os tipos do HTML5.
array(
'id' => 'your_id_name', // Obrigatório
'label' => __( 'Text Example', 'odin' ), // Obrigatório
'type' => 'field', // Obrigatório
'default' => 'Default text', // Opcional
'description' => __( 'Descrition Example', 'odin' ), // Opcional
'attributes' => array( // Opcional (atributos para input HTML/HTML5)
'type' => 'email',
'required' => 'required',
'class' => 'regular-text',
'styles' => 'background: #444;'
)
)
Cria um campo de checkbox.
array(
'id' => 'your_id_name', // Obrigatório
'label' => __( 'Text Example', 'odin' ), // Obrigatório
'type' => 'checkbox', // Obrigatório
// 'attributes' => array(), // Opcional (atributos para input HTML/HTML5)
'default' => '', // Opcional (utilize 1 para deixar marcado como padrão)
'description' => __( 'Descrition Example', 'odin' ), // Opcional
)
Cria um campo de select.
array(
'id' => 'your_id_name', // Obrigatório
'label' => __( 'Text Example', 'odin' ), // Obrigatório
'type' => 'select', // Obrigatório
// 'attributes' => array(), // Opcional (atributos para input HTML/HTML5)
'default' => 'three', // Opcional
'description' => __( 'Descrition Example', 'odin' ), // Opcional
'options' => array( // Obrigatório (adicione aque os ids e títulos)
'one' => 'One',
'two' => 'Two',
'three' => 'Three',
'four' => 'Four'
),
)
Cria um campo de radio.
array(
'id' => 'your_id_name', // Obrigatório
'label' => __( 'Text Example', 'odin' ), // Obrigatório
'type' => 'radio', // Obrigatório
// 'attributes' => array(), // Opcional (atributos para input HTML/HTML5)
'default' => 'three', // Opcional
'description' => __( 'Descrition Example', 'odin' ), // Opcional
'options' => array( // Obrigatório (adicione aque os ids e títulos)
'one' => 'One',
'two' => 'Two',
'three' => 'Three',
'four' => 'Four'
),
)
Cria um campo com editor de texto.
array(
'id' => 'your_id_name', // Obrigatório
'label' => __( 'Text Example', 'odin' ), // Obrigatório
'type' => 'editor', // Obrigatório
'default' => 'Default text', // Opcional
'description' => __( 'Descrition Example', 'odin' ), // Opcional
'options' => array( // Opcional (aceita argumentos do wp_editor)
'textarea_rows' => 10
),
)
Veja a lista de argumentos aceitos em 'options'
em wp_editor
.
Para utilizar este campo no seu tema é necessário utilizar a seguinte função:
<?php echo wpautop( do_shortcode( get_user_meta( $user->ID,'your_id_name', true ); ) ); ?>
Desta forma a formação irá aparecer corretamente e também será possível usar shortcodes no editor.
Cria um campo para upload de imagem.
array(
'id' => 'your_id_name', // Obrigatório
'label' => __( 'Text Example', 'odin' ), // Obrigatório
'type' => 'image', // Obrigatório
'default' => '', // Opcional (deve ser o id de uma imagem em mídia)
'description' => __( 'Descrition Example', 'odin' ), // Opcional
)
Este campo salva apenas o ID da imagem e não o seu caminho completo. Sendo possível recuperar as informações das imagens utilizando as seguintes funções:
Entre outras funções nativas do WordPress.
Cria um campo para múltiplo upload de imagens.
array(
'id' => 'your_id_name', // Obrigatório
'label' => __( 'Text Example', 'odin' ), // Obrigatório
'type' => 'image_plupload', // Obrigatório
'default' => '', // Opcional (deve ser o id de uma imagem em mídias, separe os ids com virtula)
'description' => __( 'Descrition Example', 'odin' ), // Opcional
)
Este campo salva os ids das imagens, separando cada um por virgula.
No seu tema é necessário converter essa informação para um array e assim utilizar as funções mostradas no campo image.
Veja um exemplo de como utilizar:
foreach ( explode( ',', $gallery ) as $image_id ) {
// Sua mágica aqui!
}
Cria um campo de upload de arquivo.
array(
'id' => 'your_id_name', // Obrigatório
'label' => __( 'Text Example', 'odin' ), // Obrigatório
'type' => 'upload', // Obrigatório
// 'attributes' => array(), // Opcional (atributos para input HTML/HTML5)
'default' => '', // Opcional (url de um arquivo)
'description' => __( 'Descrition Example', 'odin' ), // Opcional
)
Diferente dos campos de image
e image_plupload
este campo salva a url do arquivo.
Cria um campo de seleção de cor.
array(
'id' => 'your_id_name', // Obrigatório
'label' => __( 'Text Example', 'odin' ), // Obrigatório
'type' => 'color', // Obrigatório
// 'attributes' => array(), // Opcional (atributos para input HTML/HTML5)
'default' => '#ffffff', // Opcional (cor em hexadecimal)
'description' => __( 'Descrition Example', 'odin' ), // Opcional
)
Cria um campo vazio que possui apenas título (serve para cria uma espécie de sessão dentro dos User Metas).
array(
'id' => 'your_id_name', // Obrigatório
'label'=> __( 'Text Example', 'odin' ), // Obrigatório
'type' => 'title', // Obrigatório
)
Cria um separador entre os campos (ajuda com a criação de sessões dentro dos User Metas).
array(
'id' => 'separator1', // Obrigatório
'type' => 'separator' // Obrigatório
)
Para recuperar a informação de um campo do User Meta use a função get_user_meta()
;
Exemplo para pegar o valor do User Meta your_id_name
:
<?php get_user_meta( $user->ID,'your_id_name', true ); ?>
Odin_User_Meta
está localizado em core/classes/class-user-meta.php
.