Blog sobre desarrollo WordPress en Español Desarrollo WordPress en Español
registration form

Cómo crear un formulario de registro personalizado en WordPress

En entradas anteriores hemos visto cómo crear formularios de log-in / log-out personalizados, y cómo agregar campos personalizados al perfil de usuario de WordPress tanto en el front-end como en el back-end.

Para terminar esta serie de entradas vamos a ver ahora cómo crear un formulario de registro personalizado en el front-end. Para ello crearemos un form, donde además de solicitar el nombre de usuario e e-mail, pediremos los campos personalizados que vimos en ejemplos anteriores: población, provincia y teléfono. Una vez validado el formulario registraremos al usuario utilizando la función: wp_insert_user().

El html para pintar el formulario es el siguiente:

Lo siguiente que haremos es validar el formulario. Para ello preguntaremos si el formulario ha sido enviado, recogeremos y sanitizaremos (si se me permite el palabro) los datos enviados, y si no se cumplen nuestros requisitos mostraremos un mensaje de error usando la clase WP_Error.

Si todos los datos son correctos, lo siguiente es insertar el usuario con la función wp_insert_user():

<?php wp_insert_user( $userdata ); ?>

Como parámetro acepta un array de datos de usuario, entre los que se encuentran: ID, user_pass, user_login, user_nicename, user_url, user_email, display_name, nickname, first_name, last_name, description, rich_editing, user_registered, role, jabber, aim y yim. Para nuestro ejemplo vamos a guardar los datos: user_login (usuario), user_email (email).

A continuación generaremos automáticamente una contraseña con la función wp_generate_password(), y los campos adicionales de población, provincia y teléfono los guardaremos con la función update_user_meta() si la creación del usuario ha sido correcta. La función wp_insert_user() devuelve el ID creado para el nuevo usuario, ese ID es el que pasaremos a la función update_user_meta() para los campos adicionales.

Por último queda notificar al usuario que se ha dado de alta y enviarle un correo para que pueda establecer una contraseña propia. Antes WordPress enviaba las contraseñas por mail, pero en las últimas versiones por seguridad ya no lo hace. En su lugar manda un correo con un enlace para que el usuario pueda crear su propia contraseña. Para eso usaremos la función wp_new_user_notification() a la que le pasaremos los parámetros “user_id” y “both”.

El código completo de la validación del formulario es el siguiente:

Con ésto ya tendríamos nuestro formulario de registro personalizado. Puedes añadir tantos campos adicionales como desees, y adaptar el desarrollo a la medida de tus necesidades.

Puede que también te interese

WordPress Hooks: Filters
WordPress Hooks: Filters
En la entrada anterior vimos lo que eran los Actions en WordPress. En esta vamos a ver el otro tipo de hook: los filters. Los…
¿No funcionan los shortcodes en tus widgets? Aprende cómo hacerlos funcionar
¿No funcionan los shortcodes en tus widgets? Aprende cómo hacerlos funcionar
En la entrada anterior Shortcodes: ¿Qué son y cómo crearlos? vimos que son los shortcodes y aprendimos a crearlos desde cero según nuestras necesidades. En ocasiones…
WP-CLI Parte 8, Scaffold: genera esqueletos de código para post types, taxonomías, plugins, child themes…
WP-CLI Parte 8, Scaffold: genera esqueletos de código para post types, taxonomías, plugins, child themes…
1. Instalación y primeros pasos 2. Instalando WordPress y primeros pasos y configuraciones 3. Trabajando con posts 4. Trabajando con usuarios 5. Trabajando con la…
Añade una barra de progreso a tus comandos WP-CLI
Añade una barra de progreso a tus comandos WP-CLI
En entradas anteriores vimos parte de lo que podemos hacer con WP-CLI. Una de sus mayores virtudes es poder crear tus propios comandos para realizar…