GoPymes's Blog

Campos personalizados para el usuario (usermeta)

custom fields

Asi como personalizamos los campos de un post, también podemos hacerlo con los campos del usuario, para ello debemos entender que tenemos 2 tablas : users y usermeta, el 1ero es para almacenar campos general del usuario y el 2do son para campos específicos.

Mientras que el la tabla users tiene campos como ID, user_login, password, etc; en usermeta podemos almacenar campos en forma vertical, usando los campos umeta_id, user_id, meta_key y meta_value.

[table width =”70%” style =”” responsive =”true”]
[table_head]
[th_column]Campo[/th_column]
[th_column]Descripcion[/th_column]
[/table_head]
[table_body]
[table_row]
[row_column]umeta_id[/row_column]
[row_column]Es el identificador único de la tabla[/row_column]
[/table_row]
[table_row]
[row_column]user_id[/row_column]
[row_column]Es el ID del usuario, al que le vas a crear sus campos personalizados[/row_column]
[/table_row]
[table_row]
[row_column]meta_key[/row_column]
[row_column]Es el nombre del campo personalizado, por ejemplo: DNI[/row_column]
[/table_row]
[table_row]
[row_column]meta_value[/row_column]
[row_column]Es el valor del campo personalizado, para el ejemplo: 43356542[/row_column]
[/table_row]
[/table_body]
[/table]

[notification type=”alert-info” close=”false” ]Es importante saber donde WP guarda esos campos personalizados por si tenemos un problema a futuro.[/notification]

Usando el CODEX

Para interactuar con estos campos disponemos de funciones WP muy intuitivas.

Agregamos un campo llamado dni para el usuario 34:

1
<?php add_user_meta(34,'dni','43356542'); ?>

Modificamos su valor:

1
<?php update_user_meta(34,'dni','43356542'); ?>

Obtenemos el valor del campo:

1
<?php echo get_user_meta(34,'dni',true); ?>

Borramos el campo:

1
<?php delete_user_meta(34,'dni'); ?>

Algunas observaciones

[list]
[li type=”glyphicon-arrow-right”]add_user_meta tiene un 4to parámetro que es $unique el cual por default está en false, según WP si lo tienes en true validará que es valor único. Personalmente no me ha funcionado.[/li]
[li type=”glyphicon-arrow-right”]get_user_meta, el 3er parámetro viene por default en false, quiere decir que el valor retornado será un array, yo lo he seteado a true para que el valor retornado sea un string[/li]
[li type=”glyphicon-arrow-right”]Recomiendo usar un plugin para así ahorrar horas de programación[/li]
[/list]

One Comment

Leave a Reply

Your email address will not be published. Required fields are marked *