Cree sus propios campos de contacto de usuario de WordPress

Hoy creé un nuevo complemento para ti. Un complemento que se ocupa de los métodos de contacto de los usuarios. Básicamente, cuando edita un usuario en la administración, hay un bloque de “información de contacto”. Bueno, me gustaría mostrarle cómo agregar sus propios campos allí, y para ir un poco más allá, cómo mostrar (o no) estos nuevos campos en la página de registro.


Aquí hay una vista previa de lo que vamos a crear:

editar campos personalizados

Nuevos campos de usuario en la página de edición

Campos Personalizados

Campos personalizados en la página de registro

Y para hacerlo, como de costumbre, vamos a crear un complemento simple y agradable!

Paso 1: crea el complemento

Cree una nueva carpeta en wp-content / plugins y llámela “métodos de contacto de usuario personalizados”. Dentro de esta carpeta recién creada, cree un archivo llamado “rc-custom-user-contact-method.php” y ábralo en su software de editor favorito.

Coloque este contenido en su archivo vacío. Este código simplemente registra el complemento:

Paso 2: define tus campos personalizados

A continuación, debemos crear una variable que contendrá nuestros campos personalizados, los que se usarán en la página de edición del usuario y también en la página predeterminada de registro. Vamos a almacenar estos campos en una variable llamada $ extra_fields.

$ extra_fields = array (
array ('facebook', __ ('Nombre de usuario de Facebook', 'rc_cucm'), verdadero),
array ('twitter', __ ('Nombre de usuario de Twitter', 'rc_cucm'), verdadero),
array ('googleplus', __ ('ID de Google+', 'rc_cucm'), verdadero),
array ('linkedin', __ ('Linked In ID', 'rc_cucm'), false),
array ('pinterest', __ ('Nombre de usuario de Pinterest', 'rc_cucm'), falso),
array ('wordpress', __ ('Nombre de usuario de WordPress.org', 'rc_cucm'), falso),
array ('teléfono', __ ('Número de teléfono', 'rc_cucm'), verdadero)
);

Estamos almacenando cada campo dentro de una matriz que tiene 3 parámetros, el primero es la ID del campo, el segundo es la etiqueta del campo y el último es una información booleana que define si el campo se muestra en la página de registro o no . Puede agregar tantos parámetros como desee, por ejemplo, un marcador de posición o la información requerida.

Paso 3: enganche el filtro correcto

Ahora necesitamos conectar una función al filtro correcto. En nuestro caso específico, el filtro es "user_contactmethods", y el nombre de la función que vamos a crear es "rc_add_user_contactmethods".

// Usa los métodos user_contact para agregar nuevos campos
add_filter ('user_contactmethods', 'rc_add_user_contactmethods');

Paso 4: Crea nuestros campos personalizados

Ahora necesitamos crear la función "rc_add_user_contactmethods". Es el que agregará nuestros campos personalizados a la página de edición del usuario. La buena noticia es que almacenamos nuestros campos dentro de una matriz, significa que la siguiente función será completamente dinámica y será bastante fácil agregar nuevos campos simplemente modificando la variable $ extra_fields.

/ **
* Agregar usuarios personalizados métodos de contacto personalizados
* *
* @acceso público
* @ desde 1.0
* @return void
* /
function rc_add_user_contactmethods ($ user_contactmethods) {

// Obtener campos
global $ extra_fields;

// Mostrar cada campo
foreach ($ extra_fields como $ field) {
if (! isset ($ contactmethods [$ field [0]])))
$ user_contactmethods [$ campo [0]] = $ campo [1];
}

// Devuelve los métodos de contacto
return $ user_contactmethods;
}

En este paso, si guarda y activa el complemento, debería ver sus campos personalizados en la página de edición del usuario. Como estamos usando el gancho correcto, no tenemos que crear datos de campo "guardar". Entonces, el complemento funciona muy bien por el momento. Pero me gustaría ir un poco más allá y agregar la opción para mostrar esos campos en la página de registro. Asegúrese de marcar en la configuración la casilla de verificación "Cualquiera puede registrarse", de lo contrario no podrá ver el enlace "Registrarse".

Paso 5: Ganchos de página de registro

Para agregar nuestros campos en la página de registro, necesitamos acceder al menos a dos ganchos y crear dos funciones. Uno para mostrar los campos y el segundo para guardar los datos de los campos en la base de datos..

Enganchemos nuestras funciones:

// Agrega nuestros campos al proceso de registro
add_action ('register_form', 'rc_register_form_display_extra_fields');
add_action ('user_register', 'rc_user_register_save_extra_fields', 100);

Paso 6: Mostrar la página de registro de campos personalizados

En el código anterior declaramos dos funciones. El primero es mostrar los campos en la página de registro. En esta parte, debemos ocuparnos del tercer parámetro de cada matriz en $ extra_fields. Este parámetro booleano indica si los campos deben mostrarse o no. Verdadero: se muestra el campo, falso: el campo no se muestra.

/ **
* Mostrar campos personalizados en la página de registro
* *
* Mostrar campos personalizados en el registro si el tercer parámetro del campo está establecido en verdadero
* *
* @acceso público
* @ desde 1.0
* @return void
* /
función rc_register_form_display_extra_fields () {

// Obtener campos
global $ extra_fields;

// Muestra cada campo si el 3er parámetro está configurado como "verdadero"
foreach ($ extra_fields como $ field) {
if ($ campo [2] == verdadero) {
$ field_value = isset ($ _POST [$ field [0]])? $ _POST [$ campo [0]]: '';
eco '

'; } // terminara si } // fin foreach }

Paso 7: Almacene los valores de los campos en el proceso de registro

Ahora que nuestros campos se muestran en la página de registro, necesitamos almacenar sus valores en la base de datos. Este es el momento de la función "rc_user_register_save_extra_fields". Para hacerlo, necesitamos utilizar el "wp_update_user ()"Función.

/ **
* Guardar valores de campo
* *
* @acceso público
* @ desde 1.0
* @return void
* /
función rc_user_register_save_extra_fields ($ user_id, $ contraseña = '', $ meta = array ()) {

// Obtener campos
global $ extra_fields;

$ userdata = array ();
$ userdata ['ID'] = $ user_id;

// Guardar cada campo
foreach ($ extra_fields como $ field) {
if ($ campo [2] == verdadero) {
$ userdata [$ campo [0]] = $ _POST [$ campo [0]];
} // terminara si
} // fin foreach

$ new_user_id = wp_update_user ($ userdata);
}

Conclusión

Bueno, vimos los conceptos básicos sobre cómo agregar nuevos campos a los métodos de contacto del usuario, pero eso es todo. Puede, por ejemplo, eliminar campos existentes como "Yahoo IM", "AIM" y "Jabber" haciendo un simple desarmado (). Pero también puede agregar algunas funciones para desinfectar sus campos personalizados con el fin de verificar, por ejemplo, si el número de teléfono tiene un formato apropiado, si se requiere o no un campo, etc., etc. No dude en solicitar funciones específicas en los comentarios.!

Ah, y una última cosa ... si desea mostrar los datos de cualquiera de sus campos, simplemente use esto:

// El parámetro 1 es ID de usuario
// El parámetro 2 es ID de campo
// El parámetro 3 está ahí para obtener una var o una matriz
echo get_user_meta (1, 'twitter', verdadero);  
Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me

    Like this post? Please share to your friends:
    Adblock
    detector
    map