Cómo cambiar los mensajes de validación del addon de registro de usuarios

¿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.

Si necesita ayuda para crear su formulario de registro, consulte nuestra guía sobre la creación de formularios de registro de usuarios.

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 );

Cuando añada URLs en PHP, debe escaparlas con barras dobles. Además, si cambia la URL de restablecimiento de contraseña, los usuarios no podrán utilizar la funcionalidad de restablecimiento de contraseña integrada en WordPress.

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.

Filtros de referencia