¿Alguna vez se ha preguntado cómo asignar roles de usuario condicionalmente en WordPress basándose en ciertos criterios? Esto puede ser increíblemente útil para sitios que requieren roles únicos basados en acciones del usuario, estado de membresía u otros criterios.
Mientras que WPForms y el addon de Registro de Usuarios son herramientas poderosas para crear formularios de registro, algunas veces usted necesita asignar roles de usuario dinámicamente basados en condiciones específicas.
En esta guía, le mostraré cómo asignar condicionalmente roles de usuario en WordPress usando WPForms.
Funciones y capacidades de los usuarios de WordPress
WordPress tiene varios roles incorporados. A continuación, he resaltado los roles de usuario predeterminados que admite WordPress:
- Administrador: Acceso completo al backend del sitio. Este rol puede realizar actividades como añadir nuevos usuarios, editar roles de usuario, instalar plugins y temas, etc.
- Editor: Puede gestionar y publicar contenidos, incluso los escritos por otros. Su función suele limitarse a actividades relacionadas con el correo.
- Autor: El rol de Autor en WordPress permite a los usuarios publicar y gestionar únicamente sus propias entradas.
- Colaborador: En WordPress, el rol de colaborador puede escribir y gestionar sus entradas pero no puede publicarlas.
- Suscriptor: Tiene acceso limitado, normalmente para leer o comentar.
Cada rol tiene un conjunto de "capacidades" que dictan lo que los usuarios pueden y no pueden hacer. Es importante familiarizarse con las capacidades de los roles de usuario de WordPress para saber qué permisos obtendrán los usuarios al registrarse en tu sitio. Le recomiendo que consulte la guía de WPBeginner si desea obtener más información sobre los roles de usuario y las capacidades en WordPress.
Cómo asignar roles de usuario condicionalmente en WordPress
Aquí tiene un paso a paso sobre cómo asignar roles de usuario condicionalmente en WordPress.
- Paso 1: Instalar y activar el plugin WPForms
- Paso 2: Instalar y configurar el complemento de registro de usuarios
- Paso 3: Añadir Snippet para Asignar Rol de Usuario Condicionalmente
- Paso 4: Probar el formulario para asignar funciones de usuario condicionalmente
- Paso 5: Publique su formulario de registro en WordPress
Paso 1: Instalar y activar el plugin WPForms
WPForms es el mejor plugin para crear formularios básicos y avanzados en WordPress.
Desde formularios de contacto sencillos hasta funciones más avanzadas como la lógica condicional, es una herramienta fiable que me ha funcionado bien en múltiples sitios.
La licencia Pro de WPForms incluye acceso al complemento Registro de usuarios, que le permite crear formularios de registro e inicio de sesión en su sitio de WordPress.

Una vez que haya comprado la licencia Pro, debe instalar y activar WPForms en su sitio WordPress. Si es su primera vez, consulte esta guía para aprender a instalar WPForms.
Cree ahora su formulario de registro de usuario
Paso 2: Instalar y configurar el complemento de registro de usuarios
Después de instalar el plugin WPForms, también tendrá que instalar el complemento de registro de usuarios.
Para instalar el addon, diríjase al área de administración de WordPress y vaya a WPForms " Addons. A continuación, desplácese hacia abajo hasta encontrar el Complemento de registro de usuarios, o utilice la barra de búsqueda. Cuando lo encuentre, haga clic en Instalar Complemento.

Una vez que haya instalado y activado el complemento Registro de usuarios en su sitio, proceda a crear su formulario de registro.
Creación del formulario
Puede crear su formulario desde cero o utilizar nuestra plantilla de formulario de registro de usuario para acelerar el proceso de creación del formulario. Para este tutorial, usaremos la plantilla de formulario de Registro de Usuario. Para acceder a esta plantilla, navegue a WPForms " Agregar Nuevo. Luego, seleccione Plantillas de Complementos en el menú de la barra lateral.

A partir de aquí, haga clic en el botón Utilizar plantilla para acceder a la plantilla Formulario de registro de usuario.

Esto le dirigirá al constructor de formularios, donde podrá personalizar aún más la plantilla.

En el constructor de formularios, sigue adelante y añade un campo de opciones a tu formulario. Para este tutorial, voy a añadir el campo desplegable con 2 opciones: Profesor y Alumno.

También activaré la opción Obligatorio para que los usuarios deban seleccionar un tipo de cuenta al registrarse.

Anote el ID del campo desplegable, ya que lo necesitaremos en el siguiente paso.

Después de añadir los campos y personalizar las opciones de campo, vaya a Configuración " Registro de usuarios para acceder a la configuración adicional del complemento.

Si ha utilizado la plantilla de formulario de registro de usuario, toda la asignación de campos se habrá completado. Sin embargo, si está creando su formulario de registro desde cero, tendrá que asignar los campos del formulario a los metadatos de usuario de WordPress.

Por defecto, la sección Roles de Usuario está configurada como Suscriptor. No hay necesidad de preocuparse por la asignación de roles por ahora ya que esto será manejado usando lógica condicional. Sin embargo, tenga en cuenta que este será el rol por defecto asignado a los usuarios si el fragmento no funciona correctamente en su sitio.

Una vez que haya terminado de personalizar su formulario, asegúrese de hacer clic en el botón Guardar para guardar los cambios.

Paso 3: Añadir Snippet para Asignar Rol de Usuario Condicionalmente
WPForms actualmente no soporta la asignación de roles de usuario basados en la entrada de otros campos por defecto. Sin embargo, con un fragmento de PHP personalizado, puede personalizar su formulario de registro para asignar roles de usuario condicionalmente basado en la entrada del formulario.
Para nuestro ejemplo, lo configuraremos para que marque el campo desplegable que añadimos al formulario de registro. Si el usuario selecciona Profesor como tipo de cuenta, le asignaremos un rol de Editor. Si selecciona Estudiante, el fragmento le asignará un rol de Autor.
Para proceder, copie y pegue el siguiente fragmento en su sitio. Le recomiendo que utilice el WPCode para añadir el fragmento a su sitio. Este plugin hace que sea fácil de añadir fragmentos de código personalizados a los sitios de WordPress sin tener que meterse con la functions.php
archivo o preocuparse por romper el sitio.
Para más detalles sobre cómo utilizar el plugin WPCode, consulte nuestro tutorial sobre cómo añadir fragmentos personalizados a WordPress.
Código Explicación
El fragmento anterior utiliza la función wpforms_user_registration_process_registration_get_data
para capturar los datos del usuario después de que envíe el formulario de registro. Comprobaremos el campo desplegable del formulario y asignaremos al usuario un rol en función de su entrada.
Hemos configurado el fragmento para que sólo funcione en el formulario con un ID de 13. Este corresponde al ID de mi formulario de registro. Tendrá que actualizar este ID para que coincida con el ID de su formulario. Para obtener el ID de su formulario, vaya a WPForms " Todos los formularios y busque en la columna Shortcode. El número en el shortcode es el ID del formulario.

Además, el $role_field_id
que es el ID del campo desplegable, tiene el valor 6 en el código anterior. Tendrá que cambiarla también para que coincida con la de su campo desplegable. Recuerde que le pedí que anotara la variable ID del campo desplegable. Aquí es donde utilizaremos el valor.
En $role_mapping
es donde definimos la asignación de los valores de los campos desplegables. La opción Profesor corresponde al rol Editor en WordPress, mientras que la opción Estudiante corresponde al rol Autor. Puedes añadir más pares clave-valor dependiendo del número de opciones de tu formulario de registro.
Consejo profesional
El mapeo de los campos Estudiante y Profesor en el fragmento anterior corresponde a las opciones que especifiqué en el campo Desplegable al personalizar el formulario de registro. Si las opciones de su campo desplegable son diferentes a las mías, asegúrese de actualizar los pares de claves en la matriz $role_mapping para que coincidan con los valores que utilizó en su formulario.
Usamos el slug asociado al rol de usuario para mapearlo en el snippet. Por ejemplo, "editor" corresponde al rol de Editor en WordPress. A continuación, he resaltado los roles de usuario predeterminados de WordPress y sus slugs:
- Administrador - "administrador
- Editor - 'editor'
- Autor - "autor
- Colaborador - "colaborador
- Abonado - "abonado
Paso 4: Probar el formulario para asignar funciones de usuario condicionalmente
El siguiente paso después de añadir el fragmento es probar el formulario para asegurarse de que funciona correctamente antes de desplegarlo a sus usuarios. Para ello, recomiendo enviar una entrada de prueba para ver si el rol de usuario se establece dinámicamente.
Enviaré un registro de prueba en mi formulario y estableceré el campo Tipo de cuenta en Profesor.

Ahora, para comprobar la cuenta de usuario en el área de administración de WordPress, vaya a Usuarios " Todos los usuarios. Aquí verá todas las cuentas de usuario de su sitio. Como elegí Maestro al completar el formulario de registro, el rol del usuario de prueba se establece dinámicamente como Editor.

Algo a tener en cuenta cuando se permite a los usuarios elegir su rol en el frontend es que no se pueden controlar las opciones que los usuarios seleccionarán. En nuestra implementación, por ejemplo, un estudiante puede elegir el tipo de cuenta Profesor, y el formulario seguirá siendo enviado.
Puede utilizar nuestro complemento Form Locker para restringir el acceso a su formulario de registro. Esto garantiza que sólo los usuarios con una contraseña específica puedan acceder al formulario.
Alternativamente, puede habilitar la activación de usuario para el formulario de registro navegando a Configuración " Registro de usuario en el generador de formularios. A continuación, active la opción Activar activación de usuario y seleccione el método Aprobación manual.

De este modo, el administrador del sitio revisará manualmente cada registro de usuario y aprobará las cuentas de usuario si cumplen sus requisitos. Puede confirmar si el usuario ha elegido el tipo de cuenta correcto antes de aprobar su cuenta.
Lea también: Seguridad en la carga de archivos: Principales consejos para formularios en línea
Paso 5: Publique su formulario de registro en WordPress
Para terminar, vamos a añadir el formulario de registro a una página. Para ello, edita el formulario para acceder al constructor de formularios. A continuación, haga clic en el botón Incrustar en la esquina superior derecha de la página del constructor de formularios.

Tendrás la opción de publicar tu formulario en una página nueva o existente. Para esta guía, elegiré la opción Crear página nueva.

Dale un nombre a tu nueva página y haz clic en Vamos.

Será dirigido al editor de páginas de WordPress con su formulario incrustado en la página. Haz clic en el botón Publicar para publicar tu página.

Cuando compruebes esta página en el frontend, verás que tienes un formulario de registro de usuario totalmente funcional. Ten en cuenta que también es posible incrustar tus formularios utilizando un shortcode o widget.
FAQs - Cómo asignar roles de usuario condicionalmente
Estas son las respuestas a algunas de las preguntas más frecuentes sobre la asignación condicional de roles de usuario en WordPress.
¿Puedo asignar varias funciones de usuario de forma condicional?
No, el núcleo de WordPress sólo admite un rol por usuario de forma predeterminada. Sin embargo, puedes usar plugins como User Role Editor para asignar manualmente múltiples roles.
¿Se verán afectados los usuarios existentes cuando implemente la asignación condicional de funciones de usuario?
No, esto sólo afecta a los nuevos registros de usuarios a través de WPForms. Los roles de los usuarios existentes permanecen sin cambios.
¿Cómo puedo crear un rol de usuario personalizado en WordPress?
La forma más sencilla de conseguirlo es con un plugin de WordPress. Con el plugin Members, puede agregar nuevos roles de usuario en su sitio y personalizar la capacidad de cada rol. El nuevo rol que cree aparecerá en el menú desplegable de Roles de Usuario cuando personalice el complemento de Registro de Usuarios de WPForms.
¿Por qué no funciona el fragmento en mi sitio?
Esto puede ocurrir si el ID del formulario o del campo no coincide con el del formulario de registro. Asegúrate de actualizar el fragmento con los ID de formulario y de campo.
Además, si las opciones del campo Dropdown no coinciden con los roles especificados en el snippet, WPForms asignará al usuario el rol por defecto especificado al configurar el addon de Registro de Usuarios.
A continuación, personalice el estilo de su formulario de inscripción
Ahora, usted tiene un formulario de registro funcional que asigna dinámicamente roles de usuario basado en la entrada de los campos de su formulario. Le mostré cómo mostrar el formulario de registro en el frontend de su sitio. ¿Pero sabía que puede ir un paso más allá y embellecer su formulario? WPForms le permite dar estilo a sus formularios de WordPress sin escribir ningún CSS.
También puede crear una página de inicio de sesión personalizada con el logotipo de su sitio para que los usuarios puedan acceder a sus cuentas.
Estiliza tu formulario WordPress ahora
¿Listo para crear tu formulario? Empieza hoy mismo con el plugin más sencillo para crear formularios en WordPress. WPForms Pro incluye un montón de plantillas gratuitas y ofrece una garantía de devolución de dinero de 14 días.
Si este artículo te ha ayudado, síguenos en Facebook y Twitter para más tutoriales y guías gratuitas sobre WordPress.