¿Le gustaría personalizar los mensajes de error que aparecen durante el registro del usuario? WPForms le permite crear mensajes más útiles como "Nombre de usuario ya existe" o "Correo electrónico ya existe" para guiar a sus visitantes a través del proceso de registro.
Esta guía le mostrará cómo personalizar estos mensajes de validación utilizando PHP.
Configuración del formulario de inscripción
En primer lugar, asegúrese de que ha instalado el complemento de registro de usuarios para WPForms. Este addon provee dos plantillas prediseñadas: Formulario de Inicio de Sesión de Usuario y Formulario de Registro de Usuario. Como nos estamos centrando en los mensajes de registro, cree un nuevo formulario utilizando la plantilla Registro de usuario.
Estos formularios pueden mostrar varios tipos de mensajes de validación para ayudar a guiar a sus usuarios. Vamos a personalizar cada tipo de mensaje.
Modificación de los mensajes de validación
Para cambiar los mensajes de validación, tendrá que añadir uno de los siguientes fragmentos a su sitio.
Si no está seguro de cómo añadir código personalizado, consulte nuestra guía sobre cómo añadir fragmentos de código a su sitio.
El nombre de usuario ya existe Mensaje
El mensaje por defecto es Ya existe un usuario con ese nombre de usuario. A continuación se explica cómo personalizarlo y añadir un enlace de inicio de sesión:
/**
* Change the User Registration Form error message for the already existing username
*
* @link https://wpforms.com/developers/change-validation-messages-for-user-registration-addon/
*/
function wpf_dev_user_registration_username_exists( $msg ) {
// This is the message that would appear
$msg = __( 'A user with that username already exists. Please <a href="http://yourdomain/wp-admin/">log in here</a> to your account.', 'text-domain' );
return $msg;
}
add_filter( 'wpforms_user_registration_process_registration_process_username_exists_error_message', 'wpf_dev_user_registration_username_exists', 10, 1 );
Mensaje "El correo electrónico ya existe
El mensaje por defecto es Un usuario con ese email ya existe. He aquí cómo personalizarlo con un enlace de inicio de sesión:
/**
* Change the User Registration Form error message for already existing email address
*
* @link https://wpforms.com/developers/change-validation-messages-for-user-registration-addon/
*/
function wpf_dev_user_registration_email_exists( $msg ) {
// This is the message that would appear
$msg = __( 'A user with that username already exists. Please <a href="http://yourdomain/wp-admin/">log in here</a> to your account.', 'text-domain' );
return $msg;
}
add_filter( 'wpforms_user_registration_process_registration_process_user_email_exists_error_message', 'wpf_dev_user_registration_email_exists', 10, 1 );
Mensaje de contraseña incorrecta
El mensaje por defecto es Error: La contraseña introducida para el nombre de usuario es incorrecta. ¿Has perdido tu contraseña? Aquí te explicamos cómo personalizarla con un enlace para restablecerla:
/**
* Password is incorrect
*
* @link https://wpforms.com/developers/change-validation-messages-for-user-registration-addon/
*/
function wpf_dev_user_registration_login_error( $msg ) {
// This is the message that would appear in the email
$msg = __('Sorry something went wrong! ', 'text-domain');
$msg .= '<a href=\\"http://www.website.com\\">';
$msg .= __('Would you like to reset your password?', 'text-domain');
$msg .= '</a>';
return $msg;
}
add_filter( 'wpforms_user_registration_process_login_process_wp_error_message', 'wpf_dev_user_registration_login_error', 10, 1 );
Mensajes personalizados del formulario de inicio de sesión
También puede personalizar los mensajes para el formulario de acceso de usuarios. He aquí cómo crear un mensaje genérico para todos los formularios:
/**
* Change the User Login Form error message
*
* @link https://wpforms.com/developers/change-validation-messages-for-user-registration-addon/
*/
function wpf_dev_user_registration_login_error($msg) {
// This is the message that would appear in the email
$msg = __( 'Sorry something went wrong! ', 'text-domain' );
$msg .= '<a href="'.esc_url( wp_lostpassword_url() ).'">';
$msg .= __( 'Would you like to reset your password?', 'text-domain' );
$msg .= '</a>';
return $msg;
}
add_filter( 'wpforms_user_registration_process_login_process_wp_error_message', 'wpf_dev_user_registration_login_error', 10, 2 );
Mensajes de error específicos del formulario
Puede establecer diferentes mensajes de error para diferentes formularios. A continuación se explica cómo personalizar los mensajes en función del ID del formulario. Si necesitas ayuda para encontrar los ID de tus formularios, consulta nuestra guía sobre cómo encontrar los ID de formularios y campos.
/**
* Change the User Login Form error message specific per form
*
* @link https://wpforms.com/developers/change-validation-messages-for-user-registration-addon/
*/
function wpf_dev_form_login_errors( $fields, $entry, $form_data ) {
$form_id = (int) $form_data[ 'id' ];
add_filter(
'wpforms_user_registration_login_error',
function ( $message, $code ) use ( $form_id ) {
// This if for form ID 525
if ( $form_id === 525) {
// This is the specific message for form ID 525
return __( 'The error message here for form #525', 'text-domain' );
}
// This is for form ID 526
if ( $form_id === 526) {
// This is the specific message for form ID 526
return __( 'The error message here for form #526', 'text-domain' );
}
return $message;
},
10,
2
);
}
add_action( 'wpforms_process', 'wpf_dev_form_login_errors', 9, 3 );
Preguntas frecuentes
P: ¿Puedo mostrar todos los mensajes de error a la vez?
R: No, PHP se ejecuta en el orden en que se añaden los fragmentos o en el orden de prioridad establecido en la función. Si agregó el fragmento wpforms_user_registration_username_exists primero en su sitio, una vez que se envíe el formulario, ejecutará sus fragmentos en el orden en que se agregaron y mostrará el mensaje para el primer fragmento que falle.
Y eso es todo lo que necesitas para añadir mensajes de validación adicionales para el complemento Registro de usuarios. ¿Desea que sus usuarios inicien sesión automáticamente una vez que hayan completado el registro? Echa un vistazo a nuestra guía sobre cómo iniciar automáticamente la sesión de los usuarios después del registro o aprende a añadir meta campos de usuario personalizados a los formularios de registro.