Resumo de IA
Gostaria de personalizar as mensagens de erro que aparecem durante o registro de usuários? O WPForms permite criar mensagens mais úteis como “Nome de usuário já existe” ou “E-mail já existe” para guiar seus visitantes durante o processo de registro.
Este guia mostrará como personalizar essas mensagens de validação usando PHP.
Configurando seu Formulário de Registro
Primeiro, certifique-se de ter instalado o addon de Registro de Usuário para WPForms. Este addon fornece dois modelos pré-fabricados: Formulário de Login de Usuário e Formulário de Registro de Usuário. Como estamos focando nas mensagens de registro, crie um novo formulário usando o modelo de Registro de Usuário.
Esses formulários podem exibir vários tipos de mensagens de validação para ajudar a guiar seus usuários. Vamos personalizar cada tipo de mensagem.
Alterando as Mensagens de Validação
Para alterar as mensagens de validação, você precisará adicionar um dos trechos abaixo ao seu site.
Se não tiver certeza de como adicionar código personalizado, consulte nosso guia sobre como adicionar trechos de código ao seu site.
Mensagem de Nome de Usuário Já Existente
A mensagem padrão é Um usuário com este nome de usuário já existe. Veja como personalizá-la e adicionar um link de login:
/**
* 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 );
Mensagem de E-mail Já Existente
A mensagem padrão é Um usuário com este e-mail já existe. Veja como personalizá-la com um link de login:
/**
* 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 );
Mensagem de Senha Incorreta
A mensagem padrão é Erro: A senha que você inseriu para o nome de usuário está incorreta. Esqueceu sua senha? Veja como personalizá-la com um link de redefinição de senha:
/**
* 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 );
Mensagens Personalizadas de Formulário de Login
Você também pode personalizar mensagens para o formulário de login de usuário. Veja como criar uma mensagem genérica para todos os formulários:
/**
* 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 );
Mensagem de Link de Redefinição de Senha Inválido ou Expirado
Se você estiver usando o modelo de Redefinição de Senha e quiser alterar a mensagem de erro que aparece quando um usuário abre um link de redefinição inválido ou expirado, você pode usar o trecho abaixo.
/**
* Customize the error message shown on the WPForms Password Reset form
* when the reset link is invalid or expired.
*
* @link https://wpforms.com/developers/change-validation-messages-for-user-registration-addon/
*
* @param string $message The default error message.
* @return string
*/
function wpf_custom_password_reset_invalid_link_message( $message ) {
return wp_kses(
__( '<strong>Error:</strong> Your password reset link is invalid or has expired. Please request a new link below.', 'text-domain' ),
[ 'strong' => [] ]
);
}
add_filter( 'wpforms_user_registration_frontend_reset_invalid_link_message', 'wpf_custom_password_reset_invalid_link_message', 10, 1 );
Mensagens de Erro Específicas do Formulário
Você pode definir mensagens de erro diferentes para formulários diferentes. Veja como personalizar mensagens com base no ID do formulário. Se precisar de ajuda para encontrar seus IDs de formulário, confira nosso guia sobre como encontrar IDs de formulário e campo.
/**
* 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 );
Perguntas Frequentes
P: Posso mostrar todas as mensagens de erro de uma vez?
R: Não, o PHP é executado na ordem em que os trechos são adicionados ou na ordem de prioridade definida na função. Se você adicionou o trecho wpforms_user_registration_username_exists primeiro em seu site, assim que o formulário for enviado, ele executará seus trechos na ordem em que foram adicionados e exibirá a mensagem para o primeiro trecho em que falhar.
E é tudo o que você precisa para adicionar mensagens de validação adicionais para o addon de Registro de Usuário. Você gostaria de registrar seus usuários automaticamente assim que eles completarem o registro? Confira nosso guia sobre como registrar usuários automaticamente após o registro ou aprenda como adicionar campos de metadados de usuário personalizados aos formulários de registro.
P: Posso alterar a mensagem de confirmação exibida após um usuário redefinir sua senha?
Sim. Se você estiver usando o modelo Redefinição de Senha e quiser personalizar a mensagem de confirmação que aparece após um usuário redefinir sua senha com sucesso, você pode usar o trecho abaixo.
function wpf_custom_reset_confirmation_message( $message, $form_data ) {
// Modify the confirmation message based on the presence of a specific field type for grabbing the username or email.
if ( true === wpforms_has_field_type( 'text', $form_data ) ) {
$message = esc_html__( 'Please check your email to reset your password.', 'wpforms' );
} else {
$message = esc_html__( 'Your new password has been set successfully!', 'wpforms' );
}
return $message;
}
add_filter( 'wpforms_frontend_confirmation_message', 'wpf_custom_reset_confirmation_message', 10, 2 );