Gostaria de personalizar as mensagens de erro que aparecem durante o registo do utilizador? O WPForms permite-lhe criar mensagens mais úteis como "O nome de utilizador já existe" ou "O e-mail já existe" para orientar os seus visitantes durante o processo de registo.
Este guia mostrará como personalizar essas mensagens de validação usando PHP.
Configurar o formulário de registo
Em primeiro lugar, certifique-se de que instalou o addon User Registration para o WPForms. Este addon fornece dois modelos pré-fabricados: User Login Form e User Registration Form. Uma vez que nos estamos a concentrar nas mensagens de registo, crie um novo formulário utilizando o modelo User Registration.
Estes formulários podem apresentar vários tipos de mensagens de validação para ajudar a orientar os seus utilizadores. Vamos personalizar cada tipo de mensagem.
Modificação das mensagens de validação
Para alterar as mensagens de validação, terá de adicionar um dos snippets abaixo ao seu site.
Se não tiver a certeza de como adicionar código personalizado, consulte o nosso guia sobre como adicionar fragmentos de código ao seu site.
Mensagem de nome de utilizador já existente
A mensagem predefinida é Um utilizador com esse nome de utilizador 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 correio eletrónico já existente
A mensagem predefinida é Um utilizador com esse 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 palavra-passe incorrecta
A mensagem predefinida é Erro: A palavra-passe que introduziu para o nome de utilizador está incorrecta. Perdeu a sua palavra-passe? 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 do formulário de início de sessão
Também é possível personalizar mensagens para o formulário de início de sessão do utilizador. 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 );
Mensagens de erro específicas do formulário
Pode definir mensagens de erro diferentes para formulários diferentes. Veja como personalizar mensagens com base na ID do formulário. Se precisar de ajuda para encontrar as IDs de formulário, consulte o nosso guia sobre como encontrar IDs de formulário e de 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 mais frequentes
P: Posso mostrar todas as mensagens de erro de uma só vez?
R: Não, o PHP é executado na ordem em que os snippets são adicionados ou na ordem da prioridade definida na função. Se você adicionou o snippet wpforms_user_registration_username_exists primeiro no seu site, uma vez que o formulário é submetido, ele executará seus snippets na ordem em que foram adicionados e exibirá a mensagem para o primeiro snippet que falhar.
E isto é tudo o que precisa para adicionar mensagens de validação adicionais para o addon Registo de Utilizadores. Gostaria de iniciar automaticamente a sessão dos seus utilizadores depois de concluírem o registo? Consulte o nosso guia sobre como iniciar automaticamente a sessão dos utilizadores após o registo ou saiba como adicionar metacampos de utilizador personalizados aos formulários de registo.