El formulario de registro de WooCommerce es una parte vital de nuestra tienda online: un usuario que se registra deja de ser un usuario/comprador ocasional para convertirse en un cliente potencialmente recurrente.
Y a pesar de eso las opciones que nos da WooCommerce en esta parte tan importante son (muy) limitadas. Vamos a ver en este artículo cómo podemos personalizar este formulario de registro para adaptarlo a las necesidades de nuestro negocio, adaptando diversas opciones y creando para él campos personalizados.
Tabla de contenidos
El formulario de registro por defecto de WooCommerce
Ya he hablado en alguna otra ocasión de las ventajas de que los clientes se registren en nuestra tienda, y no todas son tan obvias como se puede pensar en un primer momento (te aconsejo echar un vistazo a esa entrada).
Las opciones del formulario de registro por defecto
A pesar de su importancia, WooCommerce no habilita por defecto el formulario de registro a través de la página Mi cuenta, y cuando lo habilitamos (a través de WooCommerce > Ajustes > Cuentas y privacidad > Creación de cuenta) éste es bastante básico: las opciones se limitan a:
- Si se debe permitir al cliente la elección de un nombre de usuario o éste se asigna automáticamente según su dirección de correo electrónico.
- Si se solicita al cliente una contraseña o ésta se genera automáticamente.
De esta forma nuestro rango de posibilidades se limita a:
- Ningún formulario de registro.
- Formulario de registro introduciendo sólo la cuenta de correo electrónico: el nombre de usuario y la contraseña se generan automáticamente y ésta última es enviada por correo electrónico a la cuenta utilizada para el registro.
- Formulario que solicita el nombre de usuario y la dirección de correo electrónico: la contraseña se genera y envía a este correo.
- Formulario pidiendo la dirección de correo electrónico y la contraseña: el nombre de usuario se genera automáticamente a partir del correo electrónico, y hay un medidor de fortaleza de contraseñas que limita la libre elección de ésta.
- Formulario de registro solicitando nombre de usuario, dirección de correo electrónico y contraseña para la cuenta (con medidor de fortaleza de contraseñas).
Ésta última es la opción más completa, y aún así no permite recabar del usuario ningún dato aparte del más básico, su dirección de correo electrónico.
Bastante limitado para un gran número de modelos de negocio.
El medidor de fortaleza de la contraseña
Ésos son todos los ajustes de que disponemos. Además, si se quiere permitir que el cliente elija libremente su contraseña tampoco es posible porque, como he dicho por ahí arriba, ésta ha de cumplir unos criterios de fortaleza, mostrando un mensaje de error si no los cumple.
Sí, eso es algo positivo (seguridad ante todo), pero ya sabemos lo perezosos que son los usuarios (en el mejor sentido de la palabra), y que una traba más en comercio online significa siempre un porcentaje de conversión menor.
Cómo quitar el medidor de fortaleza de contraseñas del formulario de registro de WooCommerce
Dicho esto, y conociendo la importancia de las contraseñas seguras, convengamos que no siempre es la mejor opción la de limitar el poder de decisión del usuario. En fin, que si has sopesado ventajas (seguridad en la cuenta del usuario) e inconvenientes (menor tasa de conversión) y decides que no quieres ahí ese medidor, se puede quitar.
Es muy sencillo, basta con utilizar un pequeño snippet de código:
add_action ('wp_print_scripts', function () { wp_dequeue_script ('wc-password-strength-meter'); }, 10);
Y asunto solucionado. Si no sabes dónde tienes que poner este código, echa un vistazo a estas entradas:
Cumplir el RGPD en el formulario de registro de WooCommerce
Otra gran limitación de este formulario es que aún no está adaptado al RGPD (porque recordemos que estamos pidiendo el correo electrónico, y por lo tanto es obligatorio cumplir esta norma).
Sí es verdad que desde que esta normativa entró en vigor WooCommerce incluye en el formulario un texto informativo con un enlace a la página de política de privacidad (siempre y cuando se configuren las opciones correspondientes en WooCommerce > Ajustes > Cuentas y privacidad > Política de privacidad).
¿Estás construyendo tu tienda online o eres implementador WordPress?
¿Necesitas plugins de calidad y con soporte para implementar funcionalidades concretas?
Consigue todos los plugins a la venta en la sección de plugins de esta web y todos los que siga añadiendo. Acceso a los 96 plugins (y subiendo) con soporte directo del desarrollador, actualizaciones y uso ilimitado: úsalos en tantas webs como lo necesites.
Sin embargo, la aceptación ha de ser expresa, y el formulario por desgracia no incluye un checkbox que obligue al cliente a marcarlo para expresar su consentimiento y aceptación de esta política, tal como marca la normativa. Ya hablé sobre este tema más extensamente en su momento, así que no me alargo, si te interesa el asunto echa un vistazo a esta entrada:
Esto podemos solucionarlo fácilmente con un plugin específico para esta función:
Sin embargo, si necesitamos personalizar el formulario de registro más a fondo, espera porque vamos a ver cómo añadir todo tipo de campos, lo cual por supuesto incluye este checkbox obligatorio.
Personalizar el formulario de registro de WooCommerce
Y claro, a la hora de personalizar un formulario lo que queremos es, obviamente, añadir campos personalizados, ya que hay multitud de tiendas que necesitan recabar datos concretos en el momento del registro: DNI, NIF o el documento de identificación que corresponda en cada país, país o provincia/departamento/estado, teléfono o incluso rol de usuario (distribuidor, mayorista, cliente final) son datos que quizá necesitemos antes de que el cliente pueda comenzar a comprar en nuestra tienda.
Si eres programador, WooCommerce pone a tu disposición dos hooks para ello:
- woocommerce_register_form_start
- woocommerce_register_form_end
Estos hooks te permiten añadir contenidos bien antes o bien después del formulario de registro. Y fíjate bien que digo contenidos, lo que quiere decir que si lo que necesitas es añadir campos tienes que tienes que crear el campo en HTML.
Por ejemplo, para crear un campo bastante sencillo (obligatorio) podrías hacer:
add_action ('woocommerce_register_form_start', function () { echo ''; }, 10);
Pero claro, no basta con hacer esto. También tendrías que:
- Verificar si el dato se envía o no al crear la cuenta.
- Validarlo y guardarlo si se ha enviado, y si no se ha enviado y era obligatorio interrumpir la creación del usuario y mostrar un mensaje informando al usuario de que debe completarlo.
- Ligarlo a un campo de WooCommerce en caso necesario.
- Poner el campo a disposición en la página Mi cuenta, el perfil de usuario, etcétera.
Pero, en fin, siempre hay un plugin para facilitarnos la vida.
Datos específicos de cliente en el formulario de registro mediante un plugin
En este caso, disponemos de este plugin:
Que permite:
- Añadir campos personalizados al formulario de registro de WooCommerce, tanto obligatorios como opcionales.
- Situar los campos antes o después de los campos estándar del formulario.
- Hacer que estos campos sean obligatorios u opcionales.
- Deshabilitar el medidor de fortaleza de la contraseña.
- Rellenar automáticamente los campos en caso de que haya un error al crear la cuenta (por ejemplo, porque falta un campo obligatorio), de forma que no haya que volver a completar el formulario.
- Ligar el contenido de estos campos a los datos de facturación del cliente en WooCommerce (nombre, país, dirección, provincia, teléfono…).
- Asignar al cliente un rol en función de un selector de roles añadido en el formulario de registro.
- Guardar estos campos en la pantalla de administración del perfil para que el administrador pueda verlos y/o editarlos.
- Permitir o no que el usuario edite después estos campos en la página Mi cuenta.
El plugin permite añadir bastantes tipos de campos: campo de texto, área de texto, casillas de verificación o de selección, desplegables, contraseña, lista de países o de provincias/estados/departamentos de WooCommerce, fecha, selector de rol…
Además, permite mostrar contenido personalizado (HTML, shortcodes, texto, imágenes, vídeo) entre los campos. Así sí puedes personalizar el formulario de registro de WooCommerce a la medida de las necesidades de tu negocio.
Andri dice
Saludos buen dia Enrique, estoy realizado unas modificaciones al formulario de registro y desearia poder cambiar el rol del usuario basado en un check
ya tengo programado el check y mostrado en el registro, lo que no ocurre ( por mi desconocimiento) es hacer que ese cambio se guarde en la base de datos y de alli en adelante ese usuario tenga ese nuevo rol
yo estoy utilizando
add_filter(‘woocommerce_new_customer_data’, ‘wc_assign_custom_role’, 10, 1);
function wc_assign_custom_role($args) {
$args[‘role’] = ‘Vendor’;
return $args;
}
aunque también probé con
update_user_meta( $customer_id, ‘role’,’Vendor’ );
pero en ninguno de los casos cambia el rol al nuevo usuario que se registra
Enrique J. Ros dice
Hola Andri
Echa un vistazo a esta función, es la que tienes que usar.
Un saludo
Cristh dice
Buen día Enrique, estoy realizado una pagina en wordpress y quisiera saber como insertar en un formulario de registro de usuario, un número de socio que se le ha asignado automáticamente al usuario, por ejem que se visualice : al primer usuario (COD0001) y continúe asignándole en automático a los demás usuarios registrados ejem: (COD0002) (COD0003)…
Y que sea visible para el usuario cuando este va a registrarse. (COD0001)…
Agradezco de antemano tu apoyo.
Enrique J. Ros dice
Hola Cristh
La única forma de hacer algo así es programándolo a medida.
Un saludo
Wilmer dice
Hola Enrique, me interesa mucho el plugin y me gustaría saber si los campos personalizados se incluyen en los campos que usa el Woocomerce en su base de datos, ya que lo que requiero es sincronizar por medio de un erp los datos del cliente incluyendo todos los nuevos.
Enrique Cañizares Hidalgo dice
Muy buenas, he usado el plugin de añadir campos, pero los títulos de login y register me salen en inglés. Hay forma de modificarlo?